Commit Graph

30021 Commits

Author SHA1 Message Date
Treehugger Robot
cda807f661 Merge "Add support for non-A/B OTA package in OTA_analysis." 2021-08-09 18:56:55 +00:00
lishutong
5bf9ad0eed Add support for non-A/B OTA package in OTA_analysis.
The non-A/B OTA package has a very different file system compared with
an OTA package. However, our OTA_analysis tool is based on the
update_metadata.proto. What we do here is try to convert the non-A/B OTA
package information, into a standard update_metadata.proto formated
manifest. The format and how the conversion works can be found in this
document:
https://docs.google.com/document/d/e/2PACX-1vRwMRodq4TCvTPEmlU6KL9vPSeFmEJjVXzq4PHhrB8tGy6oHFDJGCk3bIDA5Uv-4UEP0stLarBlhl2c/pub

In this CL, most of the information is successfully parsed, except
installation ops like stash, free, bsdiff, imgdiff, move. (anything
related to stash is not yet implemented)

Test: test by selecting a non-A/B OTA package.
Change-Id: I298f238395478422daece47cedbaa52a976d9f4c
2021-08-09 16:16:14 +00:00
Treehugger Robot
f5f2b3bfaa Merge "Stop relying on /usr/bin/python for SDK builds" 2021-08-06 17:28:31 +00:00
Dan Willemsen
7a0a133eba Stop relying on /usr/bin/python for SDK builds
Instead, use python2 from $PATH, which will be a prebuilt inside the
build system.

Test: treehugger
Change-Id: I81966e85377c8e9dd87e1f2656f6c0ec6b3a636c
2021-08-05 17:14:01 -07:00
Kiyoung Kim
d29c0d62e3 Merge "Allow relative path as 'local' argument" 2021-08-04 06:53:00 +00:00
Kiyoung Kim
80db1a0f7c Allow relative path as 'local' argument
Currently local argument only allows absolute path, and there is no
proper error message when relative path is used. This change updates
local argument to absolute path, so relative path can be used as the
value.

Test: update.py with relative local path succeeded
Change-Id: If6f816849bb0ee6673a95e823227f6201fb7c086
2021-08-04 13:58:21 +09:00
Ivan Lozano
9556508ef2 Merge "Specify branch in the add3prf.py generated OWNERS" 2021-08-03 18:15:10 +00:00
Ivan Lozano
70c12c514e Specify branch in the add3prf.py generated OWNERS
The branch needs to be specified in our generated OWNERS file or some
tooling will fail to find the correct OWNERS file.

Bug: 191797059
Test: New OWNERS file works as expected.
Change-Id: I91f2af6c5f489daee859b66ae0bd3c19a0bc0a3b
2021-07-30 14:39:04 -04:00
Kelvin Zhang
091a8fb955 Merge "Support docker for ota generator" 2021-07-29 12:54:42 +00:00
Kiyoung Kim
53f2c95791 Merge "Install etc files with VSDK" 2021-07-29 07:01:36 +00:00
Kiyoung Kim
3d0ed7691d Install etc files with VSDK
Create snapshot_etc module in the Android.bp, so etc files in the
snapshot can be used from the build.

Bug: 192430376
Test: tested locally to check if update.py creates snapshot_etc module
and build succeeds

Change-Id: I4cc533d8a0a378dc94d0b780ea2972cd8c6314f4
2021-07-29 14:38:54 +09:00
Kelvin Zhang
d689350756 Support docker for ota generator
Test: docker run -it -p 8000:8000 -v target:/app/target -v
output:/app/output zhangxp1998/test:latest

Change-Id: Ife050e6a8c85f2d40aff82a752b19f27c2ab23c5
2021-07-28 22:44:34 -04:00
Treehugger Robot
1a86d98b6e Merge "Speed up the payload.bin read in process." 2021-07-29 01:37:02 +00:00
Kelvin Zhang
e5eb5c9d38 Speed up the payload.bin read in process.
A 700MiB OTA package now takes only 100ms to read in, compared with
7000ms previously. That's 70x faster.

When parsing the update_metadata in payload.bin, the entire file has to
be read in previously, because zip.js does not support partial read-in.
In fact, only a small portion of the payload.bin is update_metadata.
Reading the entire payload.bin not only slows down the process but also
occupy excessive memory.

The new class OTAPayloadBlobWriter (inherited from zip.Writer) will read
in the metadata (header, manifest, signature) and throw an StopIteration
exception when finished.

Test: open a large OTA package
Change-Id: Iebf8045325dae9a118d9d8ea5674872aa7c280c4
2021-07-28 23:38:51 +00:00
Treehugger Robot
74232e7a3f Merge "Fix a compatibility issue: getBigUint64." 2021-07-28 21:50:02 +00:00
lishutong
ff2b99cd89 Fix a compatibility issue: getBigUint64.
The method getBigUint64 is not supported by safari until version 15:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView/getBigUint64
This CL mannual reload this method.

Test: Mannual tested.
Change-Id: I1d967eda93f9f628fb7f0f5d9f90efb92429ed5e
2021-07-28 20:31:37 +00:00
Treehugger Robot
503e12a866 Merge changes I36beff43,Iab7275b9
* changes:
  Fix a bug: redirect to homepage for some url.
  Fix a bug: multiple flags in ota generator.
2021-07-28 19:49:12 +00:00
Treehugger Robot
afcbcc7149 Merge "Add prebuild and postbuild info to OTA_analysis." 2021-07-28 19:47:03 +00:00
lishutong
30f991bf6e Fix a bug: redirect to homepage for some url.
In a single page application, the url sometimes does not correspond to
the actual resources on the server. Thus, it might cause 404 when users
refresh the page. By redirecting this kind of url back to the homepage,
the proper page can be rendered. If the url does not exist, the front
end will redirect to a Not Found page.

Test: mannual tested.
Change-Id: I36beff436a450ae7fcabe9172df9c7cc217d7305
2021-07-28 18:14:35 +00:00
Yuntao Xu
ec91659823 Merge "Convert Levels/Android.mk to Android.bp" 2021-07-28 17:56:13 +00:00
lishutong
c4b3dd1aef Fix a bug: multiple flags in ota generator.
Previously, when multiple extra flags are set, the subprocess.run
can start generation properly. Now this is fixed.

Test: mannual tested.
Change-Id: Iab7275b9058a088d1fafd8c445c7f0775626c1ba
2021-07-28 17:51:31 +00:00
lishutong
ad6b75df3d Add prebuild and postbuild info to OTA_analysis.
The metadata file in ota package contains prebuild and postbuild info,
now the basic info section will display those.

Test: mannual tested.
Change-Id: I264fe656ff6fab42d5161100c04210ab9a94c7a0
2021-07-28 17:51:29 +00:00
Treehugger Robot
1584123dbb Merge changes I5801bcc3,Ib2290546
* changes:
  Remove the look behind regex for Safari.
  Change the url to lowercase.
2021-07-27 13:50:26 +00:00
lishutong
2232234d48 Remove the look behind regex for Safari.
The lookbehind/lookahead regular expression is not supported in safari
yet. (https://caniuse.com/js-regexp-lookbehind) Removed it for
compatibility reason.

Test: manual tested.
Change-Id: I5801bcc389b20df31175adbb8a841eb1d31703aa
2021-07-27 03:40:33 +00:00
lishutong
a3c85492cc Change the url to lowercase.
Test: mannual tested.
Change-Id: Ib22905462aa47aeaa700407fe5b90e3261d0b3a3
2021-07-27 03:33:48 +00:00
Treehugger Robot
ceadd4cff1 Merge "Add a demo page in OTA_analyzer." 2021-07-26 20:39:20 +00:00
Yuntao Xu
2ab71a2936 Convert Levels/Android.mk to Android.bp
1. converted the Make file to a Soong one;
2. handled the .rscript files by genrule (to include the same commands used when build
with the former .mk file);
3. the differences observed in the apks before and after the conversion
are the same as in http://b/192521178, which should not affect the
conversion here;
4. the same result was observed when run the two apks on a physical
phone(Pixel 3a XL (bonito));
5. test commands:
mma -j LevelsRS
adb install -r ~/aosp/out/target/product/bonito/system/app/LevelsRS/LevelsRS.apk
adb shell am start -S -n com.android.rs.levels/.LevelsRSActivity
adb shell am start -S -n com.android.rs.levels/.LevelsDalvikActivity

Bug: 124261647
Test: compared the two apk files built by Make and Soong
Test: run two apks on a Pixel 3a XL (bonito) phone
Test: TreeHugger
Change-Id: I93876654215de98ec3160912676589ae143a4071
2021-07-26 19:25:52 +00:00
lishutong
cdf499330d Add a demo page in OTA_analyzer.
Please put an ota package and its target build as cf_x86_demo.zip and
cf_x86_target_file_demo into this directory: /public/files/

This OTA package and target build do not have to be complete - only the
manifest part in OTA package and .map files in target build are
necessary. The previous one can be generated using:
https://source.corp.google.com/android/vendor/google_tradefederation/contrib/src/com/google/android/tradefed/ota/util/PayloadUtil.java;l=196;bpv=1;bpt=1?q=PayloadUtil&sq=package:android
The following one can be generated by unzip and keep the .map files
only, zip again.

Add a demo page, now the user can view the complete function of
OTA_analyzer without uploading their own ota packages / android build.

Test: Mannual tested.
Change-Id: I7552e0222fc40e9a4b1aff9750f74cd3ed3f4feb
2021-07-26 17:51:51 +00:00
Treehugger Robot
4895d0a8b4 Merge "Add support for chain OTA generation." 2021-07-26 16:54:35 +00:00
Treehugger Robot
2e1cfae4fd Merge "Add batch generation to OTAGUI." 2021-07-23 22:17:19 +00:00
lishutong
bb3bc961d4 Add support for chain OTA generation.
To upgrade from the Android version A to Android version D, one could
directly generate an OTA package from A to D. But chances are (a) this
OTA package can be large and unstable (b) there are multiple other
devices are on version B or C. So generation of chain OTA packages
(A-->B-->C-->D) can help life easier.

Users will be able to select and sort the Android build in
`ChainOTAOptions.vue` component, and submit multiple jobs at the same
time using a OTAConfiguration from `JobSubmission.js`.

Test: Mannual tested.
Change-Id: I9f16f981af80900c18a571162146ce218ea96387
2021-07-23 19:52:28 +00:00
lishutong
c4b6c3a7dd Add batch generation to OTAGUI.
Batch generation of OTA packages is a important feature
requested by googler and partners: please refer to go/ota-dashboard-doc.
Given n incremental source builds and m target builds,
batch generation will generate n x m OTA packages in total.
If n=0, full OTA package will be generated.

The front end will be taking in the source/target lists and send the
request to backend one-by-one.

Test: mannual tested.

Change-Id: I769359ee69c7aa8c71704c4e119c374635554dfb
2021-07-23 19:18:52 +00:00
Yuntao Xu
287e52bff6 Merge "Convert HelloCompute/Android.mk to Android.bp" 2021-07-23 17:47:36 +00:00
Treehugger Robot
89e47defef Merge "Refactor the frontend for batch generation." 2021-07-23 16:49:11 +00:00
lishutong
aaf2c7a933 Refactor the frontend for batch generation.
Following part has been modified:

1. Add tabs for selection between single generation and batch
generation. (src/components/JobConfigure.vue)

2. Change the data structure of OTAConfiguration, now it only records
the flags. The source/target build will be provided when submit jobs.
(src/services/JobSubmission.js)

3. Seperate the OTAOptions as a single component, which only takes in
the flags for backend. The selection of source/target build will be in a
seperate component. (src/components/OTAOptions.vue,
src/components/SingleOTAOptions.vue).

4. Now the partition selection can takes in more than one build, but
only show the partition list of first one. Later on, this will be able
to show the intersection of the partition lists from all given builds.
(src/components/PartialCheckbox.vue)

Point 1 enables the possibility of the dynamical loading of single/batch
ota generation pages. Point 2,3,4 allow the OTAOptions components to
be reused for batch generation.

Test: Mannual tested.
Change-Id: I1a29fa7c605596d717d19da25d31b81ce5b8fcba
2021-07-23 15:09:31 +00:00
Yuntao Xu
4945a032a0 Convert HelloCompute/Android.mk to Android.bp
1. converted the Make file to a Soong one;
2. handled the .rscript files by genrule (to include the same commands used when build
with the former .mk file);
3. the differences observed in the apks before and after the conversion
are the same as in http://b/186244109, which should not affect the
conversion here;
4. the same result was observed when run the two apks on a physical
phone(Pixel 3a XL (bonito));
5. test commands:
mma -j RsHelloCompute
adb install -r ~/aosp/out/target/product/bonito/system/app/RsHelloCompute/RsHelloCompute.apk
adb shell am start -S -n com.example.android.rs.hellocompute/.HelloCompute

Bug: 124261647
Test: compared the two apk files built by Make and Soong
Test: run two apks on a Pixel 3a XL (bonito) phone
Test: TreeHugger
Change-Id: I93a536ccedd9abe5ceb99d73d96668f0a861fb51
2021-07-22 16:25:28 -07:00
Treehugger Robot
c8c2db4db6 Merge "Fix a bug that job might not be able to be started properly." 2021-07-20 21:17:41 +00:00
Treehugger Robot
2f5326c0d6 Merge "Add all possible flags to the front end." 2021-07-20 19:28:33 +00:00
lishutong
f084110dbe Fix a bug that job might not be able to be started properly.
A variable name was mispelled and it could lead to jobs unable to be
started.

Test: Mannual tested.
Change-Id: I4067e2ae243428cb190463f55122b88d471f45f7
2021-07-20 18:27:07 +00:00
Kelvin Zhang
c37be89c82 Merge changes I1e45d3ef,I4117f5d9
* changes:
  Show the old and new partition infos in OTA analysis.
  Change the look of cross emoji.
2021-07-20 16:41:04 +00:00
Logan Chien
8ce5136cb5 Merge "repo-review: Trim trailing slashes to avoid errors" 2021-07-20 16:40:48 +00:00
lishutong
c0f6a27222 Show the old and new partition infos in OTA analysis.
Test: Mannual tested.
Change-Id: I1e45d3efaefc7368a72f1ed59d09fd48f01b4132
2021-07-20 16:33:49 +00:00
lishutong
85044ed571 Change the look of cross emoji.
Test: Mannual tested.
Change-Id: I4117f5d9986aece6da8c25757baed8f750cc438e
2021-07-20 15:46:13 +00:00
lishutong
fc0431fda1 Add all possible flags to the front end.
A complete set of flags for the CLI tool can be found in this script:
https://source.corp.google.com/android/build/make/tools/releasetools/ota_from_target_files.py

Now most of the flags are being added to the front end. However, there
are several TODOs:
1. flags that require extra arguements or file operations are not
supported yet.
2. the flags can depend or exclude on other flags. Dependency is
included in file 'JobSubmissions.js'-'OTAExtraFlags'. But the function
is not implemented yet.

Test: Mannual tested.
Change-Id: I3b6b76d48861cff81bfad86b549ff53f6536933b
2021-07-20 15:31:47 +00:00
Treehugger Robot
9b339b3bc1 Merge "Fix a bug in build library: the uploaded file cannot be shown in table." 2021-07-19 22:15:54 +00:00
Logan Chien
4ee322f25b repo-review: Trim trailing slashes to avoid errors
Bug: b/170858163
Change-Id: I3de16ad77f0436af97eae26816fc99493fba30c3
2021-07-19 14:59:29 -07:00
Treehugger Robot
52c76356a5 Merge "Move the '--partial' flag and output configuration to the backend." 2021-07-19 21:27:55 +00:00
Treehugger Robot
d832c85b2e Merge "Let cargo2android.py generate data properties for tests." 2021-07-19 20:53:36 +00:00
lishutong
b9d9f55657 Fix a bug in build library: the uploaded file cannot be shown in table.
Previously, the newly uploaded file cannot be shown immediately in the
datatable, unless refresh the page. Now the bug is fixed.

Similar bug is also fixed in OTAJobTable.vue.

Test: mannual tested.
Change-Id: Ia0531db884a7e1675b2cf51aeb8ca0847694c63c
2021-07-19 20:45:46 +00:00
Treehugger Robot
8cfacd4509 Merge "Add VAB, VABC state checker to OTA_analyzer." 2021-07-19 19:22:31 +00:00