Bouncy Castle JCA provider incorrectly declares that its Cipher, Mac,
Signature, and KeyAgreement implementations accept arbitrary keys (
including AndroidKeyStore keys). As a result, when a Cipher, Mac,
Signature, or KeyAgreement instance is requested from JCA without
explicitly specifying the provider (which follows best practices)
and then initialied with an AndroidKeyStore key, JCA chooses the
BouncyCastle's implementation, which in turn blows up because it
can't handle such keys.
The workaround is to install Cipher, Mac, Signature, and
KeyAgreement implementations backed by AndroidKeyStore as a
higher-priority JCA provider than the Bouncy Castle one. This is
achieved by splitting out the above implementations from
AndroidKeyStoreProvider into AndroidKeyStoreBCWorkaroundProvider
and installing the AndroidKeyStoreProvider at the usual priority
(below Bouncy Castle) and the AndroidKeyStoreBCWorkaroundProvider
at above Bouncy Castle priority.
Bug: 20691708
Change-Id: I336464f4a49bc30c6845ddc4e84b07f4105424dd
Previous ActionBar animations didn't handle configuration changes
or other situations in which the view would get detached. listeners
would stay on the view and would attempt to do something nonsensical
in the new window. This new approach removes listeners on window
detach to avoid this problem.
Issue #20125407 Settings Crashes when changing orientation of device
Change-Id: I0b3bbd0f6fc23cdb4cbd646b0d2772d72d3d795d
This avoids loading all AndroidKeyStore crypto SPI classes when the
AndroidKeyStore provider is instantiated and installed. This provider
is installed early on during the initialization of each app. Most apps
don't need these classes loaded.
Bug: 18088752
Change-Id: Ib43c9dd6a7d434b128916e0f9c8652ba61df0d47
We don't want to preload the WebView library in the zygote process any
more, as loading an updatable WebView in the zygote is a stability risk.
The memory benefits of preloading will be obtained in other ways.
Bug: 13005501
Change-Id: Ic89f2a1d057dc92b01fb775bf326b47ac2d4caa2
Some cipher modes were removed from OpenSSLCipher. This change removes
those classes from the preloaded classes list.
Change-Id: Ib4450c392513973836684b4d5df7fffb200b6260
For image creating, art needs this in the preloaded-classes list.
Otherwise it complains loudly about not being able to load it from a
class initializer in Provider.java.
Change-Id: Ie7ed5655cba038b504767c3de9f70b47a8965cce
http://ag/352924 renamed INdefPushCallback
to IAppCallback. Update preloaded-classes
to reflect this.
This is a cherry-pick of Id552e94e3a01cdd61593480f3c0aedb32d185f80
Change-Id: I0901f14fb41f94e3c7572c09e090ec5903a878d1
Bug: 10427705
- layoutlib has references to classes that no longer build into the host
core JAR when WebViewClassic is removed.
- preloaded-classes should not reference WebViewClassic classes.
Change-Id: I4d6773a88ea2932982278127a3c96d38be54ddf5
Allow the appropriate WebView to be preloaded in the zygote by
constructing the currently selected WebViewFactoryProvider when the
WebViewFactory is preloaded. At runtime, if the preloaded provider is
still the current selection, the preloaded instance is used, otherwise
the provider is loaded at that time.
This change also removes "graceful" fallback from the experimental
WebView to the classic implementation: if the option to use the
experimental WebView is selected and it could not be loaded
successfully at the time a WebView is created, an exception will be
thrown, rather than allowing execution to continue with the classic
implementation, as the fallback may mislead developers who do not
examine logcat output in detail.
Change-Id: I0cd01c784d7048abeac55ab5863ca16b8fd9ecf2
Remove some preloaded-classes and fix typo for deleting log messages
as the followings during booting.
W/Zygote ( 163): Class not found for preloading: android.bluetooth.
BluetoothAudioGateway
W/Zygote ( 163): Class not found for preloading: android.bluetooth.
HeadsetBase
W/Zygote ( 163): Class not found for preloading: undroid.content.Ab
stractThreadedSyncAdapter$SyncThread
Change-Id: Id02e0cccaeb150f48e12d67b2d691df828842e4c
Video editing is not supported on the emulator, so preloading
this causes the emulator to crash while booting up.
Bug 7200384
Change-Id: I1915d888be328c20aa66ca2318722d5b6e6342b0
We preload classes for two reasons. Classes that are popular can be
shared and can increase the number of apps that can be run concurrently.
Classes that initialize slowly can be initialized at system boot time
by the zygote, decreasing the time to launch a specific app.
To select which classes to preload, I exercised Android's built-in apps
as well as these apps from Market: ESPN score center, Amazon, Flixster,
Twitter, Adobe Reader, Ebay Mobile, Facebook, Solitare (Ken Magic),
Barcode Reader, Google Earth and Square.
A cycle of launching ~460 (non unique) activities in sequence took 9m35s
with the previous preloaded-classes list. The update improves the launch
time of the same sequence to 9m27s: the marginal improvement over the
previous set of preloaded classes is negligible.
http://b/3004763
Change-Id: Ida511ae31eeff6d95d9cb6aacae68b9bb9dd2ebe
This also removes android.graphics.utils.BoundaryPatch
which was only used by the Browser for the unused drag
tracking (and by a demo app that I'm also removing).
Change-Id: I48253ae005ab11cb4c70d132bc1ea4f2692e2bd2
Unlike previous releases where the set of classes-to-be-preloaded
was generated on a first-generation device (G1 and MyTouch 3G), this
round I used a second-generation device, a Nexus One. As a consequence,
class loading is faster (win) and fewer classes hit the 1250ms threshold.
Instead of sharing classes based on load time alone, classes are now shared
based on the number of applications loading them.
Change-Id: I18f7aa3e7e6258818871b3968b515c06314371b3
http://b/2546002