aboutsummaryrefslogtreecommitdiff
path: root/apex/builder.go
Commit message (Collapse)AuthorAgeFilesLines
...
* Install appSet using InstallFileWithExtraFilesZipJiyong Park2022-10-191-4/+10
| | | | | | | | | | | | | | | | | | | | This fixes a bug that only the primary output of an appSet is installed when the appSet is part of a flattened APEX. Bug: 247072627 Test: m GoogleExtServices on a device using flattened APEX. system/apex/com.android.extservices.gms/priv-app/GoogleExtServices@TM has these apks: GoogleExtServices.apk GoogleExtServices-arm64_v8a.apk GoogleExtServices-hdpi.apk GoogleExtServices-ldpi.apk GoogleExtServices-mdpi.apk GoogleExtServices-tvdpi.apk GoogleExtServices-xhdpi.apk GoogleExtServices-xxhdpi.apk GoogleExtServices-xxxhdpi.apk (before the fix, there only was GoogleExtServices.apk) Change-Id: Icbc4dd002f856a3f751badec781ad132c423ac9b
* Put base APK when AppSet is included in APEXJiyong Park2022-09-291-1/+8
| | | | | | | | | This change fixes a bug that base APK of an AppSet is not put into the APEX. Bug: 236299724 Test: m nothing Change-Id: I1010ec66d8551fcc1e2d9119be7ecdba22186607
* Use PackedAdditionalOutputs when reading apk_set for canned_fs_configJiyong Park2022-09-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | When an app_set module is included in an APEX, we don't use its `builtFile` which is the main APK, , but `PackedAdditionalOutputs()` which is the zip file where all APK files (main + additional) files are packed. We then unzip them into the corresponding directory inside the APEX. However, `buildFile` still has been used when constructing canned_fs_config whose content should match with what are actually included in the APEX. Fixing the bug by using `PackedAdditionalOutputs()` instead. Bug: 236299724 Test: m nothing (apex_test.go amended) Test: follow https://buganizer.corp.google.com/issues/236299724#comment34 * mkdir for-236299724 * cd for-236299724 * repo init -u https://android.googlesource.com/platform/manifest -b * master --partial-clone --clone-filter=blob:none * repo sync -c -j8 * unzip -l ~/Downloads/mainline_t_2022_jun_t1004275.zip | cut -c31- | grep | xargs rm -f * unzip ~/Downloads/mainline_t_2022_jun_t1004275.zip * source build/envsetup.sh * choosecombo 1 aosp_arm64 userdebug * m com.android.extservices.gms Change-Id: If9752c07748300dbb963568de4e879b041b0a206
* Place native shared libs for soong build DCLA.Dennis Shen2022-08-181-17/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, DCLA is built in rapid. With new train build, DCLA will be directly built in soong, just like a regular module, refer to b/239679485. In old rapid built DCLA, native shared libs are placed the following way inside apex: /lib(64)?/foo.so/<sha256 foo.so>/foo.so The sha256 hash is used to differentiate different libs. To ensure the same lib placement in soong built DCLA, three changes are made: (1) in apex.go, added an apex soong module property called dynamic_common_lib_apex to indicate if this apex is a DCLA (2) in builder.go, update apexRule to call into run_apexer binary instead of apexer binary. run_apexer binary is a wrapper of apexer binary. If it is DCLA, the wrapper binary will place the native shared libs in desired location and update canned_fs_config accordingly. TEST: manuualy added this field to adbd. Local build by banchan and then inspect the payload image contensts. All libs are proprely placed. BUG: 241096765 Change-Id: I2a5e7ea75a6e9a7af1932ff7dccb9dc3a3785db9
* Moving default version outside of apex packageAlexei Nicoara2022-08-011-1/+1
| | | | | | | | | | | | The default version needs to be used by both apex and apk updatable modules. Moving it to android package so it can be accessed without circular dependencies. Test: presubmit Bug: 231691162 Change-Id: Icafd50d0b065e89a115ae9c9b6ea55adf2730b49 Merged-In: Icafd50d0b065e89a115ae9c9b6ea55adf2730b49
* Implement mixed builds for apex modules, take 2.Sasha Smundak2022-07-281-12/+12
| | | | | | | | | | | | | | | * Add ApexCqueryInfo to obtain apex artifacts used by the makefile generator and downstream modules * Refactor code common to GenerateAndroidBuildActions and ProcessBazelQueryResponse * Implement android.MixedBuildBuildable for modules * Enable mixed build for apex modules with payload_type:"image" The first take 6a2b7c40b was setting compressed APEX suffix incorrectly, and was reverted in 8a3c91494. Fixes: 239925080 239695521 232085015 Test: treehugger Change-Id: I1720f8db3c7cc773183d25a815d9b7eeaf7c73ad
* Revert "Implement mixed builds for apex modules."Martin Stjernholm2022-07-261-3/+8
| | | | | | | | | | | | Revert submission 2147387-mixed_builds Reason for revert: Breaks zipapex build on git_master-art-host Bug: 239925080 Reverted Changes: I9f1e03e5e:Implement mixed builds for apex modules. I13d9a0270:Add container and bundle encription key pairs to t... Change-Id: I0eaad4dd81cac16d634f4c9cec18137a38e30d47
* Implement mixed builds for apex modules.Sasha Smundak2022-07-181-8/+3
| | | | | | | | | | | | * Add ApexCqueryInfo to obtain apex artifacts used by the makefile generator and downstream modules * Refactor code common to GenerateAndroidBuildActions and ProcessBazelQueryResponse * Implement android.MixedBuildBuildable for modules * Enable mixed build for apex modules with payload_type:"image" Bug: 232085015 Test: treehugger Change-Id: I9f1e03e5e7a5b5dde35a5db10c253069543ac973
* Cleaning up comment removal and version replacementAlexei Nicoara2022-07-121-19/+3
| | | | | | | | jsonmodify is now responsible for striping the comments and replacing the placeholder version with the defaule one. Cleaning up the old code. Test: presubmit Bug: 231691643 Change-Id: I09af00199aefec09b2d5995b2923525a3a42c362
* Cleaning up the version sed ruleAlexei Nicoara2022-07-121-17/+4
| | | | | | Bug: 231691643 Test: presubmit, checked itermediary jsons Change-Id: Ibcf908d9365ab41e5a19211f5a60305a0896dea5
* Replace version 0 with the default versionAlexei Nicoara2022-07-081-1/+16
| | | | | | | | | | | Having 0 as the default version causes problems in flattened apexes and is being parsed in protobuf as non-existing field. It will be hard to revert 100 of commits for all the modules. Changing the version in soong to mitigate time impact. Test: presubmit, checked .intermediary jsons Bug: 231691643 Change-Id: I451186d79fd9f8345fd4e28d9daadbfc59047445
* Merge "Passing default version to zipApex as well"Treehugger Robot2022-07-061-4/+6
|\
| * Passing default version to zipApex as wellAlexei Nicoara2022-07-061-4/+6
| | | | | | | | | | | | Test: presubmit Bug: 231691643 Change-Id: Ic751d7ea2d23180855897702a03bf1b589d7ef80
* | Removing comment lines from apex_manifest.jsonAlexei Nicoara2022-06-301-1/+13
|/ | | | | | | | | Allowing comments in apex_manifest.json by stripping all the lines which start with // Test: presubmit Bug: 237532860 Change-Id: Iec8c9987edf19b763b2b87df7d125c006ffb217a
* Merge "Fix strip_prefix flags to strip install paths."Treehugger Robot2022-06-101-1/+6
|\
| * Fix strip_prefix flags to strip install paths.Bob Badour2022-06-091-1/+6
| | | | | | | | | | | | | | | | Bug: 235331488 Test: m droid dist Change-Id: I3cd2af5d90e46a4c983728bc9b2d941d6ffda229
* | Passing the default apex version to the apexerAlexei Nicoara2022-06-081-0/+2
|/ | | | | | Test: presubmit Bug: 231691643 Change-Id: I900a6acde9f212bf785b0be35f422416c8b62792
* Fix bug: allow multiple gen_notice modules.Bob Badour2022-05-201-1/+1
| | | | | | Test: m cts dist reportmissinglicenses Change-Id: I07963c83eaddfe363a04871e813b56fe7f1465ad
* Add gen_notice module.Bob Badour2022-05-181-1/+1
| | | | | | | | | | Refactor notices to support notices for multiple modules. Enforce visibility and handle missing dependencies. Bug: 213388645 Change-Id: Id6a81987f087419ad37d0cce57a71e8a7c4cd6e0
* Revert "Append APEX version instead of build ID for APK-in-APEX ..."Oriol Prieto Gasco2022-05-051-20/+15
| | | | | | | | | | | | | Revert submission 2067907-apk-in-apex Bug: 230873680 Reason for revert: Change broke aab generation b/230873680 Reverted Changes: I9cef1418c:Append APEX version instead of build ID for APK-in... Ic37eeba8b:Make apexer replace instances of version placehold... Change-Id: Ib113d56901e815435f71bf878049cdabd210503c
* Append APEX version instead of build ID for APK-in-APEX paths.Jingwen Chen2022-04-211-15/+20
| | | | | | | | | | | | | | | | | | | | | | | | This CL removes the build_id.mk suffix and replaces it with a hardcoded placeholder string that will be replaced with the actual version in apex_manifest.json by apexer at apex construction time. This means that as long as the apex version is incremented, the APK-in-APEX will be installed to a new directory path from the package manager's perspective. Fixes: 229574810 Bug: 229625490 Bug: 226559955 Bug: 224589412 Bug: 227417611 Bug: 228157333 Bug: 228803590 Bug: 229136249 Test: atest StrictJavaPackagesTest Test: soong tests Test: deapexer list out/dist/com.google.android.permission.apex Change-Id: I9cef1418c3fc7e0970d96995b8398f5e82f479e0
* Only install to $OUT/apex for installable apexesColin Cross2022-04-191-1/+1
| | | | | | | | | | When coverage is enabled there are two variants of the apex, one installable and one not installable. Don't try to install files files to $OUT/apex for the non-installable variant. Bug: 217453046 Test: m NATIVE_COVERAGE_PATHS="*" NATIVE_COVERAGE_EXCLUDE_PATHS="art bionic/libc device" CLANG_COVERAGE=true USE_HOST_MUSL=true com.android.runtime Change-Id: I23e58c811ff943b9d5dec025fa619c8db835b29c
* Flag to globally override apexes' min_sdk_versionAlbert Martin2022-04-081-1/+1
| | | | | | | | | | Override all mainline updateable apexes' min_sdk_version to same version to get single shared native libs on DCLA. Test: Run "vendor/google/build/go/mainline_go_modules_arm.sh" and inspect built apexes Bug: 212609891 Change-Id: Ide7d3f2bc772ac6240f1c917b87285d051d6f605 Merged-In: Ide7d3f2bc772ac6240f1c917b87285d051d6f605
* Keep dependency files out of the apk file.Bob Badour2022-04-041-3/+9
| | | | | | | | Bug: 227682036 Test: TARGET_BUILD_VARIANT=userdebug UNBUNDLED_BUILD_SDKS_FROM_SOURCE=true vendor/google/build/mainline_modules_bundles.sh -j97 Change-Id: I1a9775af7c652191bb1ce3b97c1cb9365b469c19
* Revert "Revert "Build notice files from license metadata.""Bob Badour2022-04-011-32/+5
| | | | | | | | This reverts commit 77807b3c277723161a193aea2a9df1e464448c3d. Reason for revert: fix and roll forward again Change-Id: I80c796ca81ecf29df9522babe54d684a0d11b9e6
* Revert "Build notice files from license metadata."Wei Sheng Shih2022-04-011-5/+32
| | | | | | | | | | | | | This reverts commit 43c2dcaef609c4a268bfab6c95ed924af4ead6b1. Reason for revert: suspect build break Bug: 227682036 Test: TARGET_BUILD_VARIANT=userdebug UNBUNDLED_BUILD_SDKS_FROM_SOURCE=true vendor/google/build/mainline_modules_bundles.sh -j97 Change-Id: Ibfb8b4fefc264f52f32ba661c269a9cd625d800a
* Fix breakage: bad path join using '/' literalBob Badour2022-03-311-1/+1
| | | | | | | | | | Typo in filename s/b NOTICE.html.gz not NOTICES.html.gz Bug: 227682036 Test: TARGET_BUILD_VARIANT=userdebug UNBUNDLED_BUILD_SDKS_FROM_SOURCE=true vendor/google/build/mainline_modules_bundles.sh -j97 Change-Id: I75cc28e3ef22d975ad46f4e167071f6d82ba253d
* Build notice files from license metadata.Bob Badour2022-03-311-32/+5
| | | | | | | | | | | Switch from generate-notice-files.py and mergenotice.py to htmlnotice. Bug: 151177513 Bug: 213388645 Bug: 210912771 Test: m droid dist reportmissinglicenses Change-Id: I6cac049d24f35ec358c6f341a04f4ba6161703bf
* Skip install rules for apexes with installable: falseColin Cross2022-03-081-0/+4
| | | | | | | | | | When an apex sets installable: false call SkipInstall to prevent creating the install rules, and don't report the install rules to Make. Fixes: 221261079 Test: m checkbuild Change-Id: If94759b16f79ee10ddcf8ee89603ca9e822b74f5
* apex supports ".apex" tagJooyung Han2022-02-241-0/+3
| | | | | | | | Tests can embed non-compressed .apex output with the tag. Bug: 221024307 Test: soong test Change-Id: Id4a239d1897237105a064cea8c97029f5b996a98
* Merge "Manifest Fixer Params code refactor"Gurpreet Singh2022-02-101-12/+2
|\
| * Manifest Fixer Params code refactorGurpreet Singh2022-02-101-12/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This CL refactors the code related to ManifestFixer parameters. The required parameters android.ModuleContext, manifest android.Path are passed separately as the parameters and the optional parameters are kept as part of the ManifestFixerParams struct. By default, the member variable of struct have the zero (nil, false, empty string) values. Hence, it is only required to pass the parameters of interest at the time of function call to ManifestFixer. Manual testing done to check the working of the code. Test: m nothing && m test_com.android.sdkext Test: manually tested the generation of AndroidManifest in the out directory with the testOnly attribute Test: atest manifest_fixer_test --host To test the existing unittests are not breaking. Change-Id: I20cb6c06c57f8fe7811050288bcb03945dc0425b
* | Geneate AndroidManifest file if the apex_test module does not have one.Gurpreet Singh2022-02-091-0/+2
|/ | | | | | | | | | | | | | | | | | | | | | | | | | If the build file contains the apex_test module, but the apex_test module does not contain the AndroindManifest file, then create the AndroidManifest file. In such case, the apexer tool is already generating an AndroidManifest file. In order to handle the testOnly attribute for apex_test modules, a --test_only flag is appended to the opt flags. The apexer tool reads the opt flags and if the --test_only flag is present then it generate the AndroidManifest file with testOnly attribute. Bug: 213310150 Test: m nothing && m test_com.android.sdkext Test: manually checked the generation of AndroidManifest file in the unsigned zip file mentioned in the description. This command allows to read the attribute of the binary xml file - aapt2 dump xmltree test_com.android.sdkext.apex.unsigned --file AndroidManifest.xml Verified the presence of testOnly flag in the output. Change-Id: Ic47378428b2dba51d73e75d912546c2374f68d57
* Add testOnly attribute to AndroidManifest file of apex_testGurpreet Singh2022-02-011-0/+21
| | | | | | | | | | | | | | | | | If the build file contains the apex_test module, add the testOnly attribute to the application element of the corresponding AndroidManifest file and set its value to true. If the testOnly attribute is already present and has value false, then do nothing. Tests added in manifest_fixer_test.py to check if the updated AndroidManifest file has the testOnly attribute set to true or not. Bug: 213310150 Test: atest --host manifest_fixer_test Test: m nothing Test: manually checked the AndroidManifest file generated Change-Id: I36247dbe0261c342d451a4422c314fd8fe0c2369
* Make 'Compressible' an overridable propertyOriol Prieto Gasco2022-01-221-2/+2
| | | | | | | | | | | | This is needed to allow the Android Go versions of modules (com.google.android.go.*) to select a different compression toggle than their non-Go (com.google.android.*) conterparts. go/go-updatability Bug: 203024418 Test: Preloaded go variants on wembley, booted Android. Change-Id: Ic96aff5fafb65fbd08e8a69d47c994532e27819e Merged-In: Ic96aff5fafb65fbd08e8a69d47c994532e27819e (cherry picked from commit 2c4a96375aef7570076770474b5b73341455570d)
* Add canned_fs_config to apex module typeJiyong Park2021-12-151-0/+5
| | | | | | | | | The property is used to customize uid/gid/mode/capabilities of files in an APEX. Bug: 209971551 Test: m Change-Id: I484e46ff819a5266c1e8046dae337e18ef3fefea
* Build canned_fs_config using RuleBuilderJiyong Park2021-12-151-59/+59
| | | | | | | | ... in preparation for adding the support for custom canned fs config Bug: 209971551 Test: m nothing Change-Id: I7f2576ff99c65bdb6c9ce4ace61bc783eea2f0d4
* Revert^2 "Build license metadata files in Soong"Colin Cross2021-12-101-10/+25
| | | | | | b3264f20905792e553561e9e0076eaf95d80a25d Change-Id: I5ea5f7e29eb1dbc72b8b30f010006a25f5f72fac
* Revert "Build license metadata files in Soong"Colin Cross2021-12-101-25/+10
| | | | | | | | | | | | Revert submission 1899703 Reason for revert: b/210158272 Reverted Changes: I142c19284:Reuse license metadata files from Soong Ife89b8f23:Add dependency license annotations I8e7410837:Build license metadata files in Soong Change-Id: I48f2bf2e2797ac9d38f7ece35ba616b823035607
* Build license metadata files in SoongColin Cross2021-12-081-10/+25
| | | | | | | | | Soong has enough information to build the license metadata files without resorting to the fixups required in Make. Bug: 207445310 Test: m checkbuild Change-Id: I8e74108376162b8fdb87ba098ebe94350aa1f7c4
* Move apex module installation into SoongColin Cross2021-11-191-22/+66
| | | | | | | | | | | | | | | | Move apex module installation rules into Soong by overriding InstallBypassMake. Soong installs don't support post install commands, so move the symlinks into separate rules and add dependencies on them. This relands If65d283abc86f18ad266da0bf16fe95971a0bf9c with fixes to install files into $OUT/apex and I606286e971b55d9d1fc4dcd0fbd476962de5fa79 with a fix for reversed logic. Bug: 204136549 Test: m checkbuild Change-Id: Ie65c53ebc7911efacdb8e11ba49059448f03c658
* Extract primary apk from apk set zipColin Cross2021-11-171-1/+2
| | | | | | | | | Extract and install the primary apk normally, and then unzip the rest of them as a post install command. Bug: 204136549 Test: app_set_test.go Change-Id: I17437ff27f49df6bc91bdbbea6173b46c7d3ec4e
* Java APIs used by Mainline modules.sophiez2021-11-121-5/+22
| | | | | | | | | | | | Add scripts to generate java APIs used by Mainline modules. This is aosp/1879177 with fixed build error that caused by dexdeps analyzing resource only APKs which doesn't contains any .dex files. Now skip the error generates in that case in gen_java_usedby_apex.sh Forrest run:https://android-build.googleplex.com/builds/abtd/run/L38900000951898586 Test: TARGET_BUILD_APPS=com.android.adbd m dist apps_only Change-Id: Id539cbe1b7306ace69c047f95ffc02265a467511
* Merge changes I04f2f558,Ie16a6264,I83a3be9f,Icb3eeef3Colin Cross2021-10-301-1/+1
|\ | | | | | | | | | | | | | | * changes: Rename amod variable in AndroidMkEntries.fillInEntries to base Make HostToolPath, HostJNIToolPath and sboxPathForToolRel use pathForInstall Add PathForGoBinary Remove PathForOutput from InstallPathToOnDevicePath
| * Make HostToolPath, HostJNIToolPath and sboxPathForToolRel use pathForInstallColin Cross2021-10-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | Use pathForInstall instead of PathForOutput for HostToolPath, HostJNIToolPath and sboxPathForToolRel so that they internally produce an InstallPath that can later support being converted to Make install path. Bug: 204136549 Test: m checkbuild Change-Id: Ie16a62641d113873daeec4d1dd4261251bc0d0eb
* | Merge "Make a pass over our codebase cleaning up non-precise / non-inclusive ↵Treehugger Robot2021-10-281-1/+1
|\ \ | |/ |/| | | language."
| * Make a pass over our codebase cleaning up non-precise / non-inclusive language.Joe Onorato2021-10-281-1/+1
| | | | | | | | | | | | Test: treehugger Bug: 204369779 Change-Id: I6e63cae824d323535cdb14b493edd868df47738d
* | Save all the detected native shared library backing by mainline modules.sophiez2021-10-191-2/+0
| | | | | | | | | | | | Test: TARGET_BUILD_APPS=com.google.android.adbd m dist apps_only Change-Id: I510292542bf2550c9244e9374cd6f7b40a971486
* | Merge "Add EROFS support for APEX build system"Mohammad Islam2021-10-151-1/+2
|\ \
| * | Add EROFS support for APEX build systemHuang Jianan2021-08-021-1/+2
| | | | | | | | | | | | | | | | | | | | | Bug: 195274797 Test: mmm system/apex/apexer/testdata Change-Id: I21dbe8b1bfe02d267c710f3c0dd4abaa737cffe0 Signed-off-by: Huang Jianan <huangjianan@oppo.com>