Commit Graph

1130 Commits

Author SHA1 Message Date
Colin Cross
6cb5df817b Merge "Make java_sdk_library implement Dependency" am: 1cd8a57510 am: 78f9df046e
am: 9de4ae9c73

Change-Id: Iee1c80101337d1f0e770b026faa07e0cff7b604c
2019-02-12 17:30:29 -08:00
Colin Cross
2e1a228fc6 Merge "Move dexpreopt image selection out of dexpreopt package" am: a5ffe2426f am: c8e7005b65
am: ca41b529af

Change-Id: Iac1899325acbd2ae1c26e33bb5bb393cc86e4072
2019-02-12 17:25:20 -08:00
Colin Cross
74ba962d29 Use ArchType in dexpreopt config
Make ArchType implement the encoding.TextMarshaller and
encoding.TextUnmarshaller interfaces so that it can be used
as a value in the dexpreopt config structs that are passed
through JSON files.

Test: m checkbuild
Change-Id: Ie4c12443e7ee5fe43f42d5403bcde12d62f617e2
2019-02-12 17:05:47 -08:00
Colin Cross
1cd8a57510 Merge "Make java_sdk_library implement Dependency" 2019-02-13 01:01:03 +00:00
Colin Cross
a5ffe2426f Merge "Move dexpreopt image selection out of dexpreopt package" 2019-02-13 01:00:49 +00:00
Colin Cross
31080223d1 Merge "Add support for use_embedded_dex in Soong" am: 7805791106 am: cf3e29beef
am: e7557c90e4

Change-Id: Ie908d0ad56df4b48128540d3123cb9e399a9292d
2019-02-11 17:40:57 -08:00
Colin Cross
7805791106 Merge "Add support for use_embedded_dex in Soong" 2019-02-12 00:46:52 +00:00
Colin Cross
897d2ed92f Make java_sdk_library implement Dependency
dexpreopting boot jars is going to need to visit both java_library
and java_sdk_library modules.  Since java_sdk_library is already
a java_library module, move the SdkLibraryDependency methods out
of the way so that it will implement Dependency.  Also requries
re-ording some of the type switches to check for the more-specific
SdkLibraryDependency first.

Test: TestJavaSdkLibrary
Change-Id: I155c9ffaf31689dd150a4d99e07e432ff770b4a7
2019-02-11 15:29:51 -08:00
Colin Cross
c7e40aa578 Move dexpreopt image selection out of dexpreopt package
Instead of passing both the module and global dexpreopt image
selection into the dexpreopt package, determine the correct
dexpreopt image in the java package.

Also stop using the boot image "location" as an input, only
track the real path, and then convert it to the "location"
that dex2oat expects when constructing the command line.

Test: m checkbuild
Change-Id: I2be2b5917e09fd57428dab27849c0153fdc75722
2019-02-11 15:29:51 -08:00
Colin Cross
59aa17675b Merge "Revert "Never strip and store dex files uncompressed when they are preopted on system."" am: 8e41cdb267 am: 0ba1a099e0
am: ee257ce79e

Change-Id: If52af6ef1490fab2c37940c2caa284fd50524f19
2019-02-11 11:53:34 -08:00
Colin Cross
67e8ec1973 Revert "Never strip and store dex files uncompressed when they are preopted on system."
This reverts commit 4bb0106759.

Reason for revert: b/123436620

Change-Id: Ia7595ace4b76abaa99dbb651e7d2f088dec5bad9
2019-02-11 19:30:46 +00:00
Nicolas Geoffray
10652918f3 Never strip and store dex files uncompressed when they are preopted on system. am: 4bb0106759 am: 6adc67079e
am: 04fec6c35d

Change-Id: I48dd27a693986427f53bc179bb7e893d5d6b4e5b
2019-02-11 02:50:04 -08:00
Nicolas Geoffray
4bb0106759 Never strip and store dex files uncompressed when they are preopted on system.
In order for the runtime module to always be able to compile apps,
make sure we keep a copy of the dex files optimally.

Gated by a product flag if a product doesn't include the module yet.

Test: build
Change-Id: I4bfe00184fcfdf44b8d1866c5c550838b869c60a
2019-02-09 22:08:14 +00:00
Colin Cross
f535d249d8 Merge "Make manifest and APK agree on uncompressed native libs" am: 53d312637f am: d33cdc21bb
am: 7ea16f4cdf

Change-Id: I0a90e565c358ceb5eabb97e104176461dfef3171
2019-02-08 18:55:38 -08:00
Treehugger Robot
53d312637f Merge "Make manifest and APK agree on uncompressed native libs" 2019-02-09 02:25:32 +00:00
Jaewoong Jung
9e47b0e136 Merge "Add Android.mk lines for package name overriding." am: ea66057a50 am: 9b3e4cc3af
am: afe716dcdb

Change-Id: I5074c6721c4d4d39e4fc5611621ac56318742722
2019-02-08 13:27:31 -08:00
Jaewoong Jung
ea66057a50 Merge "Add Android.mk lines for package name overriding." 2019-02-08 21:00:27 +00:00
Colin Cross
46abdad46a Add support for use_embedded_dex in Soong
When use_embedded_dex is set, store the dex uncompressed in the
APK and set the android:useEmbeddedDex="true" attribute in the
manifest.

Test: m checkbuild
Change-Id: Iea6e7ed19599830ac72392ef93f9c98957df1cce
2019-02-08 15:25:17 +00:00
Colin Cross
e4246abd7f Make manifest and APK agree on uncompressed native libs
Only put uncompressed native libs in an APK if the min_sdk_version
supports it (>= 23, Marshmallow), and set
android:extractNativeLibs="false" in the AndroidManifest.xml so
that the platform won't extract them anyways.

Bug: 117618214
Test: m checkbuild
Change-Id: I760017e48bf3c6b618aabde0982df45995765d48
2019-02-08 15:24:47 +00:00
Anton Hansson
18b30f9a4c Workaround dupe resource directories am: 129b9ceeb1 am: 2fc1d0f1ea
am: c8fa538ac0

Change-Id: I80de41497623113dd12cf65c41a8148a294109dc
2019-02-08 00:14:06 -08:00
Anton Hansson
129b9ceeb1 Workaround dupe resource directories
A few apps are co-located with libraries they depend on statically,
and because it's not possible to specify "no resource_dirs", they
both end up depending on the same resources, leading to downstream
problems for RRO generation.

Workaround the problem by de-duping the RRO paths for a single app
for now.

Bug: 124035856
Bug: 123510624
Test: make with enforce_rro == *
Change-Id: I251f123eb4280ed72e1ccd2212cb5f3e746e645d
2019-02-08 07:55:00 +00:00
Colin Cross
95f416cac8 Merge "Remove unused dexpreopt UseEmbeddedDex" am: 6ff48cd048 am: 98b1442180
am: ad7571f464

Change-Id: I3d77352678e4ae698583b5f8426b055f5c4a03fc
2019-02-07 23:39:38 -08:00
Treehugger Robot
6ff48cd048 Merge "Remove unused dexpreopt UseEmbeddedDex" 2019-02-08 07:19:33 +00:00
Colin Cross
45b69010c9 Merge "Make privileged java_library modules use uncompressed dex" am: 89ba9715ef am: 8367be9da7
am: 309ce85acd

Change-Id: I3e71ce5a2e84812bc61bd7e7051b34811027e092
2019-02-07 18:56:20 -08:00
Colin Cross
bbe7e8261e Merge "Allow disabling implicit resource_dirs and asset_dirs" am: 3e48a994e8 am: 73481a4cf6
am: d6fa3b1cbf

Change-Id: I64e113ce97c8d103a141ec65caacf67c08464b5f
2019-02-07 18:55:49 -08:00
Colin Cross
89ba9715ef Merge "Make privileged java_library modules use uncompressed dex" 2019-02-08 02:29:59 +00:00
Colin Cross
3e48a994e8 Merge "Allow disabling implicit resource_dirs and asset_dirs" 2019-02-08 02:29:35 +00:00
Colin Cross
09a65ab6ca Remove unused dexpreopt UseEmbeddedDex
dexpreopt doesn't need to know about UseEmbeddedDex, it has
already been taken into account for UncompressedDex.

Test: m checkbuild
Change-Id: I5508aa43bb8bdb06e20cf93bc5171a5e78833983
2019-02-08 02:27:59 +00:00
Colin Cross
c8e819341d Remove the hiddenapi presingleton am: 697412f058 am: 3def9efe61
am: 57bda7a089

Change-Id: I59d0570d5aa1870abcbb7d9cda70a4171af0dfee
2019-02-07 18:21:58 -08:00
Colin Cross
32fd5947ca Make MakeVarsContext a PathContext am: 65494b962b am: e5bc0d6253
am: 1c15057b94

Change-Id: I3521fec124f35017812ed2c3faf9fb7e46f73a3a
2019-02-07 18:21:45 -08:00
Colin Cross
0ddae7fddd Allow disabling implicit resource_dirs and asset_dirs
Specifying [] for resource_dirs or asset_dirs will prevent using
the default "res" or "assets" directories.

Test: TestResourceDirs
Bug: 124035856
Change-Id: I96e38ac1319260db43950299a8b1774da68ea85e
2019-02-08 00:24:01 +00:00
Colin Cross
697412f058 Remove the hiddenapi presingleton
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-07 22:31:44 +00:00
Colin Cross
65494b962b Make MakeVarsContext a PathContext
Expose all of SingletonContext to makeVarsContext, and then export
the subset of it that is used through MakeVarsContext.SingletonContext,
plus what is necessary for PathContext, directly through
MakeVarsContext.

Test: m checkbuild
Change-Id: Ie00f36e577fe110b6fa03b901da489d8547773c6
2019-02-07 22:31:04 +00:00
Colin Cross
c73f63616d Merge "Use a presingleton to create hiddenapi singleton paths early" am: 17c85f098a am: a0e1404cf9
am: 9e43bcb7ec

Change-Id: Ib66c4ee3a11666539a1e0aa44422636549e30777
2019-02-07 12:18:09 -08:00
Colin Cross
76e3e1f554 Use a presingleton to create hiddenapi singleton paths early
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-07 08:57:26 -08:00
Colin Cross
083a2aa52d Make privileged java_library modules use uncompressed dex
Check java_library modules against ModulesLoadedByPrivilegedModules
to determine whether to uncompress the dex files in them.

Test: m checkbuild
Change-Id: I77ee456d55bec65c8b4c82e9bd38f344212e6140
2019-02-07 08:56:02 -08:00
Jaewoong Jung
9109d72785 Add Android.mk lines for package name overriding.
This ensures the overriding/overridden packages are processed as intended
when producing the final system image.

Bug: 122957760
Test: Manual tests with Browser2, BrowserGoogle, and Chrome
Change-Id: Ica05e53601b27c73de7f5c3bfcb9000103a11db6
2019-02-07 07:15:45 -08:00
Colin Cross
28825f0e41 Merge changes from topic "hiddenapi" am: 4c3a4aded3 am: 19807e619e
am: ab9bfa1617

Change-Id: I148138a6723926af54620c6ce3379fdb61ed9e08
2019-02-07 00:09:49 -08:00
Colin Cross
f24a22a98a Move hiddenapi singleton rules to Soong
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
2019-02-06 11:23:40 -08:00
Steven Moreland
9553814469 Merge "Remove '-b' from AIDL" am: 4331334bdc am: 9a410a2ccd
am: ca14e12ba1

Change-Id: I3178a58fd18f0db48df5890f86cc7d2008100dbe
2019-02-06 10:46:17 -08:00
Steven Moreland
4331334bdc Merge "Remove '-b' from AIDL" 2019-02-06 18:09:31 +00:00
Anton Hansson
8bf3c6f380 Merge changes I28c45e13,I9754ebf0,I0dda0184 am: 1ac44afaa5 am: 4dc75982ac
am: b8d59a9217

Change-Id: I92fa7e7a5f7bf0aceb7464ef9e950b375ace583e
2019-02-06 06:19:28 -08:00
Colin Cross
c1c3755b39 Export RRO resource dirs from static android_library dependencies
RRO dirs from static android_library dependencies should be
included in the final module.

Bug: 123510624
Test: TestEnforceRRO
Change-Id: I28c45e139b187894a4ebc43d573eab5ea1be9861
2019-02-06 10:18:38 +00:00
Colin Cross
6ed7deaf33 Add a static lib to TestEnforceRRO
Add a static lib dependency to TestEnforceRRO in preparation
for capturing static dependencies in rroDirs.

Bug: 123510624
Test: TestEnforceRRO
Change-Id: I9754ebf02866e8b3e4ad0c55ff099e546f8e2bc2
2019-02-06 10:18:30 +00:00
Colin Cross
5c4791c71e Move TestEnforceRRO test cases into test function
The test cases will need to reference buildDir, which is not
yet set at global variable initialization time.

Bug: 123510624
Test: TestEnforceRRO
Change-Id: I0dda0184dfab496c820e11ed76b7594a60d5d587
2019-02-06 10:18:09 +00:00
Colin Cross
23db3437ec Merge changes Ifcb338e6,Ie509ed80,I270fed60,Id825cb75,I92a963bd am: cc2d11961c am: 9053375b93
am: 31cabeea1c

Change-Id: I3abcc60539de84d3365df989de341b4bb3e1db09
2019-02-05 21:26:50 -08:00
Colin Cross
571cccfcbc Prepare for a type-safe OnceKey
Add an opaque OnceKey type and use it for all calls to Once in
build/soong.  A future patch will convert the arguments to
Once* to OnceKey once users outside build/soong have been updated.

Test: onceper_test.go
Change-Id: Ifcb338e6e603e804e507203c9508d30ffb2df966
2019-02-06 01:52:41 +00:00
Steven Moreland
36b130fcfb Remove '-b' from AIDL
An empty file will be emitted for parcel declarations. Now sources may
inclue parcel definitions.

Bug: 70046217
Test: manual

Change-Id: I8087416ae7806399c3514d18faeadb858f07bf88
2019-02-06 01:04:29 +00:00
Colin Cross
feec25b084 Move dexpreopt.Script to android.RuleBuilder
Move dexpreopt.Script to android.RuleBuilder so that the builder
style can be used in more places.  Also add tests for it.

Test: rule_builder_test.go
Change-Id: I92a963bd112bf033b08899e930094b908acfcdfd
2019-02-05 13:28:43 -08:00
Colin Cross
5e24ba9886 resolve merge conflicts of dec157bd6c to master
Bug: None
Test: treehugger
Change-Id: I701d7a4ee893eb4113a48eaee9930eceec478a29
2019-02-04 10:09:01 -08:00