* changes:
check-flagged-apis: consider interfaces when looking up symbol
check-flagged-apis: skip self-referential interfaces
check-flagged-apis: record interfaces when parsing classes
check-flagged-apis: add more details to Symbol class
check-flagged-apis: api-versions.xml: correctly parse nested class ctor
If a symbol can't be found in a class, (recursively) check the class'
superclass before reporting the symbol as missing.
Bug: 334870672
Test: atest --host check-flagged-apis-test
Change-Id: I8ef1fbfcc51e0c5ba00959536c087213d688fe39
Extend ClassSymbol with a nullable reference to the class' superclass.
Bug: 334870672
Test: atest --host check-flagged-apis-test
Change-Id: Ia2741a4d7fb5de908a03ef640f5fcd38d0ce0e28
When searching for potential errors, if a symbol can't be found in the
api-verions.xml data, check if it is present in any of the class'
interfaces.
A follow-up CL will add similar logic to handle super classes.
Bug: 334870672
Test: atest --host check-flagged-apis-test
Change-Id: Ia6dfcfa8495b89465db60f6a4eb77d304112046b
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
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
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
The constructor of a nested class is represented as follows in
api-versions.xml:
<class name="android/Clazz$Foo$Bar" since="1">
<method name="<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
Note that not all partitions are moved to Soong. Soong doesn't yet
support *_dlkm partitions and the oem partition.
This change also removes dead code for support VNDK snapshot.
Finally, as a minor clean up, the leading '_' is dropped from the module
names _fs_config_*. There's no need to hide the module names.
Bug: 337993745
Test: m
Change-Id: I5beec5c6734291b9361f870fc1a8dba19def062e
Revert submission 3070882-sdk_lib_remove_compilation
Reason for revert: Potential culprit for build breakage of barbet-ap2a-userdebug in git_main
Reverted changes: /q/submissionid:3070882-sdk_lib_remove_compilation
Change-Id: I53b229137a8ba45e32209dbe69ab0cf698084377
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
Ignore-AOSP-First: cherrypick
Merged-In: I1d84db76b157082fc7db1b3cb7c9afe8cdf46cbf
Change-Id: I1d84db76b157082fc7db1b3cb7c9afe8cdf46cbf
We won't be adding build/trunk_release to the manifest.
Bug: 328495189
Test: TH
Ignore-AOSP-First: cherry-pick
Merged-In: I0ef2a900568daccfbd2ef1d8949674e6f2a63e00
Change-Id: I0ef2a900568daccfbd2ef1d8949674e6f2a63e00
Only include a release_config_map.mk file the first time it appears in
the list.
If the flag declaration is identical to one already declared, do not
raise an error.
This eases the process of migrating where flags are declared.
Bug: b/328781415
Bug: b/328495189
Test: manual, TH
Ignore-AOSP-First: cherry-pick
Change-Id: I18316e769438f62071723771762d6e89be98b813
Merged-In: I18316e769438f62071723771762d6e89be98b813
This allows us to split up build/release for better clarity.
Bug: b/328495189
Test: manual
Ignore-AOSP-First: cherry-pick
Merged-In: If810780de164b74c3e3ebc35260384843de2c084
Change-Id: If810780de164b74c3e3ebc35260384843de2c084
RELEASE_APEX_CONTRIBUTIONS_* flags per module will be used to toggle
between sources and prebuilts of a mainline module in ap3a and above in
internal and partner builds.
Test: git_aosp-main-with-phones:aosp_cf_arm64_only_phone-next-userdebug
https://android-build.corp.google.com/builds/abtd/run/L61500030003577619
Test: lunch gsi_partner_arm-ap31-userdebug in v-aml-prebuilt-dev
Test: m out/soong/prebuil_info.json # identical before and after
Bug: 308188056
Change-Id: I308f071763297eb95ca5c8fb0191c8bb794789f7
Return a pointer of MappedStorageFile/MutableMappedStorageFile instead
of an object of MappedStorageFile/MutableMappedStorageFile. Now added
destructor for MappedStorageFile/MutableMappedStorageFile to unmap the
in memory file to free up memory.
Bug: b/321077378
Test: atest -c
Change-Id: Iaa02696feb07ff383f0c7e46b645d82e57c38254
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