Commit graph

96819 commits

Author SHA1 Message Date
Mårten Kongstad
04d8b46c37 check-flagged-apis: skip self-referential interfaces
The return value of ClassItem.allInterfaces will sometimes include the
interface itself (e.g.
android.accessibilityservice.BrailleDisplayController). It is unclear
when this happens; it doesn't happen for the unit test.

Update the logic to record the interfaces for a class to filter out
interfaces named the same as the class.

Bug: 334870672
Test: atest --host check-flagged-apis-test
Test: croot && ./build/tools/check-flagged-apis/check-flagged-apis.sh
Change-Id: I8d93c230dfedde30e8d43fefd560a47944085d3a
2024-05-07 13:16:13 +02:00
Mårten Kongstad
7c3571fe8b check-flagged-apis: record interfaces when parsing classes
Extend ClassSymbol with a list of the interfaces that class implements.
This will be used in a follow-up CL to improve the logic that checks if
a class member exists in the api-versions.xml data.

Bug: 334870672
Test: atest --host check-flagged-apis-test
Change-Id: I4db7ff47c3ce40ca892cb872810dd559426dfcb8
2024-05-07 13:16:13 +02:00
Mårten Kongstad
a1fe37137e check-flagged-apis: add more details to Symbol class
Change Symbol from a wrapper around a String to a more fleshed out data
class; symbols now encode if they represent a class, or a class member
(including a reference to the containing class).

Bug: 334870672
Test: atest --host check-flagged-apis-test
Test: croot && ./build/tools/check-flagged-apis/check-flagged-apis.sh # with and without this CL; the output should be the same
Change-Id: I003535c721c45d559d00fb3e008325e1db0e18c0
2024-05-07 13:16:13 +02:00
Mårten Kongstad
02525a88de check-flagged-apis: api-versions.xml: correctly parse nested class ctor
The constructor of a nested class is represented as follows in
api-versions.xml:

  <class name="android/Clazz$Foo$Bar" since="1">
    <method name="&lt;init>()V"/>
  </class>

The nested dollar signs are not replaced by forward slashes before the
parsing logic uses `split("/")` to find the name of the inner-most
class, incorrectly resulting in `Class$Foo$Bar` instead of `Bar`. Fix
this by immediately replacing dollar signs with forward slashes after
extracting the package and class.

Also clean up the following call of `Symbol.create`.

Bug: 334870672
Test: atest --host check-flagged-apis-test
Change-Id: I8c0619faae90ded7eb14dcc20ecb94a086a1c764
2024-05-07 13:16:13 +02:00
Treehugger Robot
5a99056218 Merge "Use complete api-versions.xml for module-lib and system-server" into main 2024-05-03 20:42:02 +00:00
Wei Li
961a642955 Merge "Add proposed trendy teams for CTS modules to be added in platinum." into main 2024-05-03 18:28:39 +00:00
Paul Duffin
771a201f3d Use complete api-versions.xml for module-lib and system-server
Previously, the check-flagged-apis.sh script used `api-versions.xml`
for `module-lib` and `system-server` which did not include the
latest up-to-date information about updatable modules or historical
information about sdk extensions which lead to false positives for
APIs from those updatable modules. This changes switches to use the
`api-versions.xml` produced by the new `api_versions_*_complete`
modules which does include that information.

Bug: 337836752
Test: Run script before and after applying this change to make sure
      that flagged APIs from updatable modules are no longer
      reported as missing.
Change-Id: If09e89a4595a19d9f00390fb5fbd24330ec11be5
2024-05-03 12:13:32 +01:00
Treehugger Robot
984f5ca822 Merge "check-flagged-apis.sh: speed up build step" into main 2024-05-03 09:03:12 +00:00
Mårten Kongstad
22063d0670 check-flagged-apis.sh: speed up build step
Instead of building the entire SDK, explicitly build the
api-versions.xml files.

Bug: 334870672
Test: croot && build/tools/check-flagged-apis/check-flagged-apis.sh
Change-Id: Ib165c0acd4766ad3000aaf17220050d5e66ddf2c
2024-05-03 10:05:03 +02:00
Mårten Kongstad
a57d0ef0a1 Merge "check-flagged-apis.sh: use correct path to generated API signature files" into main 2024-05-03 06:53:52 +00:00
Inseob Kim
ab47e15dd1 Merge changes from topic "merge_cc_logtags" into main
* changes:
  Add LOCAL_SOONG_LOGTAGS_FILES
  Add python Soong modules for logtags
2024-05-03 05:10:23 +00:00
Spandan Das
09c5581b12 Merge "Drop ART_MODULE_BUILD_FROM_SOURCE" into main 2024-05-03 02:27:51 +00:00
Spandan Das
1dcca5239a Drop ART_MODULE_BUILD_FROM_SOURCE
RELEASE_APEX_CONTRIBUTIONS_ART provides a similar functionality, and
also allows selection of a specific art prebuilt if multiple art
prebuilts exists in the tree

`art_module.source_build` was also previously used to conditionally
disable the source soong modules of art/, but this conditional disabling
has been removed with r.android.com/3045792

Bug: 308188056
Test: presubmits
Test: lunch cf_x86_64_phone-trunk_staging-userdebug; mmma art
Test: git_master-art:art-host-x86_64,art-target-arm64,mainline_modules
https://android-build.corp.google.com/builds/abtd/run/L30200030003163172
Test: git_master-art-host:art-build,art-gtest,art-test,art-preopt
https://android-build.corp.google.com/builds/abtd/run/L07600030003164399

Change-Id: Idbb129d2ec304d5320754cd61d40e10e5c7d5414
2024-05-03 02:27:39 +00:00
Wei Li
0e805a76a4 Add proposed trendy teams for CTS modules to be added in platinum.
Bug: 333956273
Test: CIs
Change-Id: Ic4c45a495ecba1cd9ef86e5938dcea2ccff935e5
2024-05-03 00:46:52 +00:00
Florian Mayer
610cd25c88 Merge "Use memtag_stack variants in make" into main 2024-05-03 00:20:37 +00:00
Wei Li
f142d91a17 Merge "Add new trendy team module for Pearl team" into main 2024-05-02 22:42:40 +00:00
Wei Li
5ff777f333 Merge "Add license metadata declarations which are moved from device/google/trout/Android.mk." into main 2024-05-02 22:23:35 +00:00
Xuanang Zhao
73bc3c0e73 Add new trendy team module for Pearl team
Bug: 332479829
Ignore-AOSP-First: internal config
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:e072257bdaf20c5d0a09f5908123d2d283dedfd3)
Merged-In: Ia1ebbf5c6b010b381aa70ba0edd7b00fd05c0e59
Change-Id: Ia1ebbf5c6b010b381aa70ba0edd7b00fd05c0e59
2024-05-02 21:58:16 +00:00
Zhuoyao Zhang
a7df315755 Merge "Add an integration test" into main 2024-05-02 20:54:52 +00:00
LaMont Jones
dac6b97f63 Merge "Enable build flags in protobuf" into main 2024-05-02 19:51:01 +00:00
Treehugger Robot
b9ffad8376 Merge "Enable perfetto persistent tracing" into main 2024-05-02 19:29:08 +00:00
Treehugger Robot
c039204466 Merge "check-flagged-apis: suppress unused variable warning" into main 2024-05-02 19:01:48 +00:00
Treehugger Robot
83705ef7d1 Merge "check-flagged-apis: add support for method with parameters" into main 2024-05-02 18:59:48 +00:00
Zhuoyao Zhang
db666bcb0c Add an integration test
Add a test to verify that the parameters passed from the
envsetup.sh function are compatible with the actual tool
event logger implementation.

Note that this change adds support for extra logger arguments.
This enables calling the real logger binary with a 'dry run'
flag to avoid actual logging during test execution.

Test: atest rul_tool_with_logging_test
Bug: 331638854

Change-Id: I6b280c53baae03477d4f52f0084efb1f500bd5d0
2024-05-02 18:43:19 +00:00
Daniel Zheng
76f13d280c Merge "create_brick_ota: logic fix" into main 2024-05-02 18:10:51 +00:00
Treehugger Robot
7bff3a85f9 Merge "Add * support products and modules" into main 2024-05-02 18:07:48 +00:00
Daniel Zheng
7e4cc58f2d create_brick_ota: logic fix
ota_metadata should be initialized outside of the if block.

Bug: 3072303
Test: th
Change-Id: Iabe52be3557c71921586d960d8a8a91c33d5558b
2024-05-02 09:55:45 -07:00
LaMont Jones
20dd4c2360 Enable build flags in protobuf
If RELEASE_BUILD_FLAGS_IN_PROTOBUF is False, then the results from
out/release-config are ignored and we do the old processing.

The following additional logic all goes away once the migration to protobuf
is finished.

- If we found .textproto files that don't have corresponding .mk files,
  we require protobuf.
- If we found .mk files that don't have corresponding .textproto files,
  we require legacy (make) processing.
- If PRODUCT_RELEASE_CONFIG_MAPS specifies .textproto files, we require
  protobuf.

In order to further isolate migration, the choice can be determined on a
release-config by release-config basis.  in each release config
directory, we look for:
 - `build_config/DEFAULT=proto`
 - `build_config/DEFAULT=make`
 - `build_config/${TARGET_RELEASE}=proto`
 - `build_config/${TARGET_RELEASE}=make`
The last such file found determines which code path is used.

Bug: 328495189
Test: manual, TH
Change-Id: I1d84db76b157082fc7db1b3cb7c9afe8cdf46cbf
2024-05-02 08:07:30 -07:00
Mårten Kongstad
8b81af4e11 Merge "check-flagged-apis: change internal format" into main 2024-05-02 14:51:49 +00:00
Mårten Kongstad
b9ce4c92e0 check-flagged-apis.sh: use correct path to generated API signature files
The path to the generated API signature files used with --api-signature
in the check-flagged-apis.sh script are different based on the lunch
target used: sometimes it's under $ANDROID_PRODUCT_OUT, other times
under out/target/product/mainline_x86.

Teach check-flagged-apis.sh to dynamically find the correct path by
querying ninja.

Bug: 334870672
Test: croot && build/tools/check-flagged-apis/check-flagged-apis.sh
Change-Id: I1b0b41ef3ad1bc7113a3b31323d81251e7e65933
2024-05-02 14:30:56 +02:00
Mårten Kongstad
cd93aeb947 check-flagged-apis: suppress unused variable warning
Bug: 334870672
Test: m check-flagged-apis # verify no Lint warnings
Change-Id: If4fb93703f0f0bf3f27e6ec052cf488796bd717e
2024-05-02 14:01:12 +02:00
Mårten Kongstad
b4a14bfaa9 check-flagged-apis: add support for method with parameters
Teach check-flagged-apis to parse methods containing parameters.

Bug: 334870672
Test: atest --host check-flagged-apis-test
Change-Id: I171660b914b73fd85e03ed9300c2c81f33d80d61
2024-05-02 09:53:54 +02:00
Mårten Kongstad
ece054c856 check-flagged-apis: change internal format
Switch the internal format to represent Symbols to (something close to)
the format described in section 4.3.2 of the JVM spec, i.e.

  com/android/SomeClass/someMethod(II[Ljava/lang/String;)Z

This will make parsing method parameters from api-versions.xml easier,
as that file already uses this format, and converting API signature
files to the same format is less painful than going in the other
direction.

Bug: 334870672
Test: atest --host check-flagged-apis-test
Change-Id: I1e1fb8fe208cd51cce2cc129f5aa1cb495672c16
2024-05-02 09:50:33 +02:00
Inseob Kim
beff4ab9a2 Add LOCAL_SOONG_LOGTAGS_FILES
LOCAL_SOONG_LOGTAGS_FILES is similar to LOCAL_LOGTAGS_FILES but it uses
full paths rather than relative paths, to correctly support Soong's
`android:"path"` which may produce paths outside module directories.

Bug: 336189540
Test: m out/soong/.intermediates/all-event-log-tags.txt
Test: m out/target/common/obj/all-event-log-tags.txt
Change-Id: I129b96f3e06036ded76d2657e25e895f8c946cfb
2024-05-02 13:51:41 +09:00
Inseob Kim
f441f7d8fd Add python Soong modules for logtags
Bug: 336189540
Test: m out/soong/.intermediates/all-event-log-tags.txt
Test: m out/target/common/obj/all-event-log-tags
Change-Id: Iae336a05bb2f27564b0bf8d4ea3753a30be89e90
2024-05-02 13:51:34 +09:00
Treehugger Robot
7faf630b7c Merge "Disable kotlin -checkdiscard rule" into main 2024-05-02 00:50:05 +00:00
Jared Duke
32c8a6a43d Disable kotlin -checkdiscard rule
kotlin-stdlib is included transitively as a library jar by way of
androidx.annotations, which means we cannot ensure associated classes
are discarded by R8. Disable the related `-checkdiscard` proguard rule
until that inclusion is resolved, avoiding spurious warnings in build
output.

Bug: 302383328
Test: m
Flag: NA
Change-Id: I7514e6841735e95e1a16d42d6a6e134103ecb108
2024-05-01 23:34:24 +00:00
Treehugger Robot
e78ad285cb Merge "Add a release config map override for go devices" into main 2024-05-01 23:05:20 +00:00
Spandan Das
68dce16b3f Add a release config map override for go devices
One use case for this is to select go prebuilt apexes when building go
devices.

Bug: 338002385
Test: presubmits
Test: verified that this map shows up in `get_build_var
PRODUCT_RELEASE_CONFIG_MAPS` of a go device

Change-Id: I5505c581597bbd5a4e5f8fc6cd69987f67f0adb6
2024-05-01 22:04:36 +00:00
Treehugger Robot
b604cf3f81 Merge "Remove deprecated Goma makefiles" into main 2024-05-01 20:23:18 +00:00
Cole Faust
c80e7eeb77 Merge "sdk-addon: Prevent nested data/ inside $(PRIVATE_STAGING_DIR)" into main 2024-05-01 19:32:12 +00:00
Kousik Kumar
fe9aaa23fe Remove deprecated Goma makefiles
Goma is no longer used with android platform builds. Just a minor cleanup.

Bug: n/a
Change-Id: I62844c1d555677006a1022dab4f12bcfd7e55758
2024-05-01 18:14:17 +00:00
Florian Mayer
0349db6826 Use memtag_stack variants in make
Bug: 309446520
Change-Id: Ib67b37e97d9fabd2be3236d80a695c4883eccb7b
2024-05-01 10:41:09 -07:00
Treehugger Robot
0c2ef754f3 Merge ""Steal" single value variables in rbc inheritance" into main 2024-05-01 15:54:12 +00:00
Ted Bauer
daa3c71739 Merge "Update dependencies for new aconfig flag storage" into main 2024-05-01 15:37:20 +00:00
Cole Faust
8383184b7a "Steal" single value variables in rbc inheritance
This behavior of "stealing" values from parent makefiles is needed to
match make. We already had similar behavior for list variables via
the __move_items function, but were missing it for single value
variables.

Test: ./out/rbcrun -mode rbc ./build/make/tests/run.rbc
Change-Id: Ib320b9b1cce0224184f585c7a391be1b5353b440
2024-04-30 17:30:18 -07:00
Ted Bauer
4560e3ae8f Update dependencies for new aconfig flag storage
Bug: 328444881
Test: m
Change-Id: I3685a74e9e93a6ecb89a054e243b48b67f470d55
2024-04-30 23:57:51 +00:00
Spandan Das
7d5b29ef85 Merge "Revert "Align boot jar exclusion with apex_contributions"" into main 2024-04-30 23:24:05 +00:00
Spandan Das
213847d3f6 Revert "Align boot jar exclusion with apex_contributions"
This reverts commit f340066ee3.

Reason for revert: Breaks go/ab/git_main:barbet-ap2a-userdebug

Change-Id: I62639525d5b2507a07c3145ff556fdf2b156cb01
2024-04-30 23:10:28 +00:00
Dennis Shen
c0102331c8 Merge "aconfig: add a new aconfig storage file flag listing api" into main 2024-04-30 23:06:18 +00:00