summaryrefslogtreecommitdiff
path: root/java/hiddenapi_singleton.go
AgeCommit message (Collapse)Author
2020-07-29Update language to comply with Android's inclusive language guidanceAleksei Kalinov
See https://source.android.com/setup/contribute/respectful-code for reference. Bug: 161896447 Test: ran `m`. Change-Id: If5ec29482911c281bc1c4bf2cfc84b2f05c2240d
2020-06-09Merge "Split the core/platform API into stable and legacy versions." am: ↵Pete Gillin
d7db79cc8b am: 5dbf9e09f2 Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1322704 Change-Id: I731da4ed59432a67bdc3df124a8939bcf316aa0c
2020-06-08Merge "Include car project in grey list removed apis" into rvc-dev am: ↵TreeHugger Robot
50cea1a76e Original change: https://googleplex-android-review.googlesource.com/c/platform/build/soong/+/11746426 Change-Id: Ie39738a277df3af9bdae6c59ad39b4bf07b16287
2020-06-08Split the core/platform API into stable and legacy versions.Pete Gillin
For now, everything outside libcore still uses the legacy version. Test: treehugger Bug: 157640067 Change-Id: If5234e9ee533ff537926801a0af045d36b1caf01
2020-06-05Include car project in grey list removed apisEric Jeong
- Car framework has removed system APIs. - These APIs should be tracked at run-time. Bug: 154832144 Test: 1) android.signature.cts.api.AnnotationTest#testAnnotation 2) diff $OUT/soong/hiddenapi/hiddenapi-flags.csv before and after this CL Change-Id: I9813df4b514da41e82d45e6c0bc92643916fe0d8
2020-06-04Revert^2 "Rename DexJar interface method to DexJarBuildPath."Ulyana Trafimovich
This reverts commit b0dc851ff4eca650042b52ce4ff06cb7e0312b77. Reason for revert: relanding original change. Build failures were caused by a race with another CL: https://r.android.com/1320920 Test: lunch aosp_cf_x86_phone-userdebug && m Change-Id: Ic9016582dae7773b4d4f84a63425f1ef7a5d061f
2020-06-04Revert "Rename DexJar interface method to DexJarBuildPath."Ulyana Trafimovich
This reverts commit 562c240185dd4adcbdb75d2924c69657f6ac7cff. Reason for revert: breaks `lunch full-eng && m checkbuild`. Change-Id: Id7c7d6240d98afaf8edd49b6c96cd05534b784cc
2020-06-03Rename DexJar interface method to DexJarBuildPath.Ulya Trafimovich
This is a prerequisite change before adding DexJarInstallPath. Test: lunch aosp_cf_phone-userdebug && m Change-Id: I033e08b8bb06c0a844a6bbbfcdc48ce33e9c95cf
2020-03-31Use modular removed-dex.txt files for greylisting.Artur Satayev
Use droidstubs for public and system stubs to provide a list of @removed APIs. As these APIs are not present in the stubs, they are not whitelisted / greylised automatically. Keep them on greylist manually. Bug: 143864733 Test: diff out/soong/hiddenapi/hiddenapi-flags.csv Change-Id: I4c8e6899fadfdfd1da82f6f453cc92e71aa9b78c Merged-In: I4c8e6899fadfdfd1da82f6f453cc92e71aa9b78c Exempt-From-Owner-Approval: clean cherry-pick (cherry picked from commit c7fb5c99644d2434c9e6c957f7366d0467284211)
2020-03-30Use modular removed-dex.txt files for greylisting.Artur Satayev
Use droidstubs for public and system stubs to provide a list of @removed APIs. As these APIs are not present in the stubs, they are not whitelisted / greylised automatically. Keep them on greylist manually. Bug: 143864733 Test: diff out/soong/hiddenapi/hiddenapi-flags.csv Change-Id: I4c8e6899fadfdfd1da82f6f453cc92e71aa9b78c
2020-03-21Merge CSV files generated by UnsupportedAppUsageProcessor.Artur Satayev
Flow: 1. Annotation processor generates a CSV file per class as a CLASS_OUTPUT resource. 2. hiddenapi.go extracts individual .csv files and merges them into an index.csv file per module. 3. hiddenapi_singleton.go merges individual index.csv files into a combined .csv file. In a follow up hiddenapi-index.csv would replace unsupportedappusage_index.csv Bug: 145132366 Change-Id: I87d92f9c8d4b1cc1df526fc576ee3c2101116b58 Merged-In: I87d92f9c8d4b1cc1df526fc576ee3c2101116b58 Test: diff unsupportedappusage_index.csv hiddenapi-index.csv Exempt-From-Owner-Approval: cp from r.android.com/1239709
2020-02-20Merge CSV files generated by UnsupportedAppUsageProcessor.Artur Satayev
Flow: 1. Annotation processor generates a CSV file per class as a CLASS_OUTPUT resource. 2. hiddenapi.go extracts individual .csv files and merges them into an index.csv file per module. 3. hiddenapi_singleton.go merges individual index.csv files into a combined .csv file. In a follow up hiddenapi-index.csv would replace unsupportedappusage_index.csv Bug: 145132366 Change-Id: I87d92f9c8d4b1cc1df526fc576ee3c2101116b58 Test: diff unsupportedappusage_index.csv hiddenapi-index.csv
2020-02-19Use flag names with merge_csv.py.Artur Satayev
Bug: 145132366 Test: diff -w out/soong/hiddenapi/hiddenapi-greylist.csv Change-Id: If63c8ae5eda48e49bf58a338bf08f0f2d4fea3cf
2020-01-20Use merge_csv python_binary.Artur Satayev
Instead of using .py file directly. Bug: 145132366 Test: diff -w out/soong/hiddenapi/hiddenapi-greylist.csv Change-Id: Ib79019234b4ae05486e831b30d27bd1be3bbba67
2019-12-19Revert submission 1194828-revert-1191937-art_apex_available-DWXQGTKMARJiyong Park
Reason for revert: relanding with fix Reverted Changes: Ic4119368c:Revert submission 1191937-art_apex_available Ia084976bb:Revert submission 1191937-art_apex_available Iada86226d:Revert submission 1191937-art_apex_available Ic76735eac:Revert submission 1191937-art_apex_available I1eb30e355:Revert submission 1191937-art_apex_available Icaf95d260:Revert submission 1191937-art_apex_available Ie8bace4be:Revert submission 1191937-art_apex_available I8961702cf:Revert submission 1191937-art_apex_available I39316f9ef:Revert submission 1191937-art_apex_available I522a7e83b:Revert submission 1191937-art_apex_available I8b9424976:Revert submission 1191937-art_apex_available I48b998629:Revert submission 1191937-art_apex_available Change-Id: I95cef82fa5dfaba5b7044cf274ce59ab954b8f2b
2019-12-19Revert submission 1191937-art_apex_availableJoseph Murphy
Original Commit Message: """ Rename modules that are APEX-only The renamed modules are only available for APEXes, but not for the platform. Use the <module_name>.<apex_name> syntax to correctly install the APEX variant of the modules. """ Reason for revert: Build Cop - Breaks about 15 AOSP targets, with high confidence due to these changes being the only non-robot changes in those builds. Reverted Changes: I190ce2d10:Use apex_available property I990e0a67e:Use apex_available property I0d1295683:Revert "Avoid duplicated classes for boot dex jars... I5fb725403:Find the jar libraries in APEX from the correct pa... I322b1efcc:Rename modules that are APEX-only Ifa2bd0f8f:Use apex_available property Iac6533177:Use apex_available property Ie999602c6:Use apex_available property I2a3d73397:Use apex_available property Ic91bcbb9a:Use apex_available property Ia6c324eed:Use apex_available property I964d0125c:Use apex_available property Change-Id: I48b998629b0676cd7353e6844fd87585e0e42989
2019-12-17Revert "Avoid duplicated classes for boot dex jars"Jiyong Park
This reverts commit 2812df4edb6c22c6d5de2156942b1898db9c2317. This is no longer required as we have I6463ebc59cf7fd861b812999d7a79c387bbb3335. hostdex files are available even when the module doesn't have "//apex_available:platform" Bug: 128708192 Test: m Change-Id: I0d1295683222bc9cdbb82630e61ab3421c717daf
2019-12-16Avoid duplicated classes for boot dex jarsJiyong Park
When a boot classpath java library is directly or indirectly included in APEXes, multiple variant of the library exist. When running the hiddenapi tool, we need to eliminate the duplication, otherwise the tool will complain. Previously, we simply choose the platform variant of the java library among the multiple variants. However, if the java library is marked not available for the platform (i.e. "//apex_available:platform" is not in the apex_available property), the platform variant does not exist and thus it is not fed into the hiddenapi tool, which causes missing references in the tool. To solve the problem, the platform variant is selected only for the java libs that are available for the platform. For those libs that are not available for the platform, we choose one variant of it using a heuristic; skip testing APEXes and choose com.android.art.release among the com.android.art.* variants. Bug: 128708192 Test: m Change-Id: I33bf297eb3029696ae3504a011486210708fb2c2
2019-12-09Move/dedupe some host path functions in package_ctx.go.Martin Stjernholm
These functions don't need a PackageContext object. Test: m Bug: 145934348 Change-Id: Ia1da2c76cbad292f9ca79617199b2b5b6b265568
2019-11-20Pass hiddenapi-greylist-max-q.txt to greylist generator.Artur Satayev
Bug: 137350495 Test: m, manual inspection of out/soong/hiddenapi/hiddenapi-flags.csv Change-Id: I67227307ec08ab56a385980eceacaab1b985eb49 Merged-In: I67227307ec08ab56a385980eceacaab1b985eb49
2019-07-26Revert "Revert "Split Java libraries per apex""Jiyong Park
This reverts commit f0f7ca8335cca669dd524b39d52997c28eb59e48. Bug: 138182343 Test: apex_test added Change-Id: I5c8a0935ac0f456137c8656815e220b0e7848a5d
2019-07-25Revert "Split Java libraries per apex"Jiyong Park
This reverts commit aa53324ac8308d974435cf2c8566835b87e3e05d. Reason for revert: b/138337109 (broke ndk build) Change-Id: I9497cb4337add3f8c491a684bcaadea3bdbfaa85
2019-07-23Split Java libraries per apexJiyong Park
Just like native libs, a java library that is included in an APEX is mutated for the APEX. This allows us to infer the context (e.g. sdk_version, etc.) for building a java library in an APEX. Bug: 138182343 Test: apex_test added Change-Id: I9292ea097b98e74a8a794f164bd2bed3921d6337
2019-07-15Fix the unbundled mainline module buildJiyong Park
This change fixes two problems: 1) the prebuilt apexes are force disabled for the unbundled builds because we need to build the modules from the source then 2) the dependencies from an sdk_library module to *.stubs.{public|system|tests} are not added for the unbundled build because the stubs modules are disabled. Bug: 137282010 Test: unbundled mainline builds are successful Test: build com.android.media and inspect the jar file to see if hiddenapi flags are there $ cd out/dist/mainline_modules_arm $ unzip com.android.media.apex apex_payload.img $ mkdir -p mnt $ sudo mount -o ro,loop apex_payload.img mnt $ dexdump2 mnt/javalib/updatable-media.jar | grep hiddenapi shows results Change-Id: I2c00af07aac4a15770d3acab011a36e2e4803bfc
2019-07-15Revert "Don't build hiddenapi flags or encode dex for unbundled builds"Jiyong Park
This reverts commit 7b8a567f44b3fdb30eac8211e8ed8e27fb162797. Bug: 137282010 Test: With the CL above this one, the unbundled mainline module build does not fail. Change-Id: I2f49fa7dbe1da92cb282a9bc14acd5830888ed17
2019-06-13Add hiddenapi_flags module typePaul Duffin
The build generates a file out/soong/hiddenapi/hiddenapi-flags.csv which is used by the hiddenapi-blacklist tests in cts/tests/signature. The generation is done at the ninja level and so is not accessible from the soong layer that runs on top. This change adds the hiddenapi-flags module type which makes the file accessible from other soong modules. Bug: 122332514 Test: atest -p cts/tests/signature Change-Id: If38c8a8ffca110f2ae01f97f19a2740ca3fde1b7 Exempt-From-Owner-Approval: Colin has already reviewed and only had minor nits and this is blocking other changes.
2019-05-28Don't build hiddenapi flags or encode dex for unbundled buildsColin Cross
Builds with TARGET_BUILD_APPS shouldn't build the hiddenapi flags or encode dex files even if frameworks/base exists. Bug: 133343287 Test: mainline modules build Change-Id: I0647451420fd09bb680808b35e1ad3b8f514ba46
2019-04-02Fix panic when missing hiddenapi jarColin Cross
Fix a panic after reporting an error when a module is listed in ProductHiddenAPIStubs but doesn't exist or doesn't produce a dex jar. Test: manual Change-Id: I43643cbc5303536bfe0b02feedb03563ea0b540a
2019-03-29Automatically greylist code in 3P packagesAndrei Onea
Bug: 129387816 Test: m appcompat Test: frameworks/base/tools/hiddenapi/generate_hiddenapi_lists_test.py Change-Id: Id55abed766a6de6a2c032ee12d5153ab73a8d65c
2019-03-01Differentiate system and test apis in whitelistAndrei Onea
@SystemApi and @TestApi entries in the whitelist can now be differentiated from the rest of the public apis. Test: m Change-Id: Ie6a0108540cffe11992739d6391531401378f14b
2019-02-28Fix hiddenapi issue when REMOVE_ATB_FROM_BCP=truePaul Duffin
If the android.test.base is not on the bootclasspath then its stubs should not be used as input to the hiddenapi processor. Bug: 73711752 Test: make REMOVE_ATB_FROM_BCP=true droid && atest -p cts/tests/signature Change-Id: Ib03899001e4350c9ad9e757e9e6d7d41bb0a3896
2019-02-25Whitelist Offline.getProbes(..).Allen Hair
Test: atest -v -it CtsSystemUiTestCases -- --abi x86 --test-arg com.android.tradefed.testtype.AndroidJUnitTest:coverage:true Bug: 122330976 Change-Id: Ieb4a8808de6a3e062297c6a0b9e83a3872247eee
2019-02-20Make RuleBuilder methods take PathsColin Cross
There are no more Make paths being used in Soong now that dexpreopting and hiddenapi are in Soong. Use the Path types in the inputs to RuleBuilder, and fix all users of RuleBuilder. This reapplies I886f803d9a3419a43b2cae412537645f94c5dfbf with fixes to disable preopt for Soong-only builds when the global dexpreopt.config doesn't exist. Test: all soong tests Test: m checkbuild Change-Id: I4dae9ecd5de22f062f9478ec8f0747f099cf8190
2019-02-21Revert "Make RuleBuilder methods take Paths"Colin Cross
This reverts commit acdd6940719125104dfd2f692990c99682f95f05. Reason for revert: broke ndk build Change-Id: I5655e48c15eb8f5f0267afdd853fbc25765b8623
2019-02-20Make RuleBuilder methods take PathsColin Cross
There are no more Make paths being used in Soong now that dexpreopting and hiddenapi are in Soong. Use the Path types in the inputs to RuleBuilder, and fix all users of RuleBuilder. Test: all soong tests Test: m checkbuild Change-Id: I886f803d9a3419a43b2cae412537645f94c5dfbf
2019-02-19Allow Singletons to export Make variablesColin Cross
Register any Singletons that implement a MakeVars method as MakeVarsProviders, and convert the hiddenapi singleton to use it. Test: m checkbuild Change-Id: I6a2044ad34ef46a8b267762ddfeb51aa01d7734d
2019-02-07Remove the hiddenapi presingletonColin Cross
The presingleton is no longer necessary now that MakeVarsContext is a PathContext, just call hiddenAPISingletonPaths directly. Test: m checkbuild Test: forrest build of unbundled branch
2019-02-07Use a presingleton to create hiddenapi singleton paths earlyColin Cross
If no module uses hiddenapi (because it is an unbundled build that does not build any boot image modules), then the makevars singleton panics because it will always run before the hiddenapi singleton (due to package init() function ordering), and the hiddenapi singleton paths have not been initialized yet. Add a presingleton to initialize the paths early. Bug: 123645297 Test: tapas Launcher3 && m on unbundled branch Change-Id: I9386ac87848a2181f51140129288df80fff9acfd
2019-02-06Move hiddenapi singleton rules to SoongColin Cross
Move the rules that build hiddenapi-stubs-flags.txt, hiddenapi-flags.csv and hiddenapi-greylist.csv into Soong. Bug: 123645297 Test: m checkbuild Test: m UNSAFE_DISABLE_HIDDEN_API_FLAGS=true Change-Id: I90bf58710f6153ee8565994f799d3ec5699bc7fa