diff --git a/core/definitions.mk b/core/definitions.mk index 63b123ea68..f60fa0aa37 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -2531,6 +2531,7 @@ define codename-or-sdk-to-sdk $(if $(filter $(1),$(PLATFORM_VERSION_CODENAME)),10000,$(1)) endef +# --add-opens is required because desugar reflects via java.lang.invoke.MethodHandles.Lookup define desugar-classes-jar @echo Desugar: $@ @mkdir -p $(dir $@) @@ -2538,6 +2539,7 @@ $(hide) rm -f $@ $@.tmp @rm -rf $(dir $@)/desugar_dumped_classes @mkdir $(dir $@)/desugar_dumped_classes $(hide) java \ + $(if $(EXPERIMENTAL_USE_OPENJDK9),--add-opens java.base/java.lang.invoke=ALL-UNNAMED,) \ -Djdk.internal.lambda.dumpProxyClasses=$(abspath $(dir $@))/desugar_dumped_classes \ -jar $(DESUGAR) \ $(addprefix --bootclasspath_entry ,$(call desugar-bootclasspath,$(PRIVATE_BOOTCLASSPATH))) \ @@ -2691,10 +2693,14 @@ define sign-package $(call sign-package-arg,$@) endef +# signapk uses internal APIs from sun.security.{pkcs,x509}; see http://b/37137869 # $(1): the package file we are signing. define sign-package-arg $(hide) mv $(1) $(1).unsigned -$(hide) java -Djava.library.path=$(SIGNAPK_JNI_LIBRARY_PATH) -jar $(SIGNAPK_JAR) \ +$(hide) java -Djava.library.path=$(SIGNAPK_JNI_LIBRARY_PATH) \ + $(if $(EXPERIMENTAL_USE_OPENJDK9),--add-exports java.base/sun.security.pkcs=ALL-UNNAMED,) \ + $(if $(EXPERIMENTAL_USE_OPENJDK9),--add-exports java.base/sun.security.x509=ALL-UNNAMED,) \ + -jar $(SIGNAPK_JAR) \ $(PRIVATE_CERTIFICATE) $(PRIVATE_PRIVATE_KEY) \ $(PRIVATE_ADDITIONAL_CERTIFICATES) $(1).unsigned $(1).signed $(hide) mv $(1).signed $(1)