Name Date Size #Lines LOC

..--

conscrypt/apex/H25-Apr-2025-4239

flags/H25-Apr-2025-6858

i18n/H25-Apr-2025-913,647269,518

local_riscv64/prebuilts/module_sdk/H25-Apr-2025-542509

platform/H25-Apr-2025-649,274530,804

runtime/H25-Apr-2025-867,254720,172

statsd/stats-log-api-gen-exports/H25-Apr-2025-3027

tzdata/H25-Apr-2025-7265

OWNERSH A D25-Apr-202575 54

README.mdH A D25-Apr-20252.4 KiB5641

README_riscv64.mdH A D25-Apr-20252.3 KiB6552

update.pyH A D25-Apr-202520.5 KiB558400

README.md

1Prebuilts of APIs from platform and other Mainline modules that the ART Module
2needs.
3
4These prebuilts should reflect the APIs in Android 12 (version 31), which is the
5earliest release that may take an update of the ART Module. Hence updating the
6prebuilts to newer versions needs to be done with care. Prebuilts that are part
7of the NDK are generally safe since they are annotated to provide a version 31
8compatible ABI.
9
10To update:
11
121. Submit the changes that need to go into the prebuilts.
13
142. Wait for new builds on branches `aosp-main` and/or `aosp-main-throttled`,
15   depending on which prebuilts are required. See `update.py` for details about
16   which branches and targets are used for what.
17
18   In general `mainline_modules_sdks-trunk_staging-userdebug` is the slowest
19   build to complete, so look for that to be on the safe side.
20
213. Edit the list returned by `install_entries` in `update.py` in this directory
22   to only cover the updates you need (this change shouldn't be submitted).
23
244. Run:
25
26   ```
27   prebuilts/runtime/mainline/update.py \
28     --aosp-main-build <build id> --aosp-main-throttled-build <build id>
29   ```
30
31   where the two `<build id>` are the builds from step #2.
32
33   The script will download, extract and put the right prebuilts in the right
34   places in `prebuilts/runtime`, `prebuilts/module_sdk/conscrypt`, and/or
35   `prebuilts/module_sdk/StatsD`. However, some prebuilts may not have
36   corresponding CI builds so they may not be complete - see `update.py` for
37   details.
38
395. Make sure that riscv64 still works.
40
41   That architecture is currently not included in the SDK builds in CI (cf.
42   b/286551985). Either revert riscv64-related changes, or update them as well
43   following the process in README_riscv64.md.
44
456. Try to further minimize the updates in the created CLs and ensure they are
46   safe. This usually means reverting some prebuilts back to their old contents,
47   and reverting specific hunks in the `Android.bp` files. Also, please improve
48   the autogenerated CL descriptions to make them more accurate and describe the
49   reason for the update. Please avoid doing any other changes - in particular
50   there must be no local change in any prebuilt file (not counting
51   `Android.bp`'s). [email protected] is happy to help with reviews.
52
53Note that the script takes a `--local-dist` argument that you can use to test
54with prebuilts from a local build in another tree. However, CLs created that way
55should not be submitted.
56

README_riscv64.md

1Unlike other architectures, riscv64 is not supported by mainline yet
2(see b/286551985#comment6 for reasons why). Therefore we have to follow a
3semi-manual update process described below.
4
5This is not a fully correct process, as the prebuilts are taken from an
6arbitrary local build, and only for riscv64. Common architecture-independent
7parts of the SDKs such as headers are not updated, as that would affect
8architectures other than riscv64. One can only hope they did not diverge too
9much from the previous update.
10
11For conscrypt and statsd, we (the ART team) don't have the ownership to commit
12the updates in their proper repositories, prebuilts/module_sdk/conscrypt and
13prebuilts/module_sdk/StatsD. Therefore as a temporary workaround these prebuilts
14are committed in prebuilts/runtime/mainline/local_riscv64. Before the build
15starts, they are copied to their proper places by the art/tools/buildbot-*.sh
16scripts.
17
18To update:
19
201. On aosp/main (full manifest):
21
22   1. Cherry pick https://r.android.com/2647900 (this is necessary for the SDK
23      build in step 4).
24
25   2. Build implementation libs:
26      ```
27      $ lunch aosp_riscv64-trunk_staging-userdebug
28      $ m dist
29      ```
30
31   3. Build apexes:
32      ```
33      $ banchan \
34          com.android.runtime \
35          com.android.tzdata \
36          com.android.os.statsd \
37          com.android.conscrypt \
38          com.android.i18n \
39          riscv64
40      $ m DIST_DIR=out/dist/mainline_modules_riscv64 dist
41      ```
42
43   4. Build module SDKs:
44      ```
45      $ packages/modules/common/build/mainline_modules_sdks.sh \
46          --build-release latest \
47          --build-platform-sdks-for-mainline
48      ```
49
502. On aosp/master-art branch (reduced manifest):
51
52   1. Run:
53      ```
54      $ prebuilts/runtime/mainline/update.py \
55          --local-dist-riscv64 <root-of-aosp-tree>/out/dist
56      ```
57
58   2. Manually inspect the updated Android.bp files and revert any sections not
59      related to riscv64 (it may be necessary to revert the entire file). Then try
60      to build with `lunch riscv64 && art/tools/buildbot-build.sh`, you may find
61      that further tweaking is needed. Make sure that the build succeeds.
62
63   3. Update the commit (use `lunch riscv64 && art/tools/buildbot-build.sh` as a
64      validation step in commit message). Be sure to set mast@ as reviewer.
65