Commit Graph

56673 Commits

Author SHA1 Message Date
Neil Fuller
d0c0c8dcab Merge "Add a finalize() method to StrictJarFile" 2016-08-09 10:43:18 +00:00
Tobias Thierer
addbf9015a Ensure apps cannot prevent uncaught exceptions being logged.
Let RuntimeInit use an UncaughtExceptionPreHandler to log an exception
rather than relying on UncaughtHandler, which apps can replace. This
makes it easier to diagnose application death, especially during app
compatibility testing for a new version of Android.

Test: Verified manually, with the help of a small sample app (not
checked in), that stacktraces for RuntimeExceptions thrown on main
or background threads are logged even when the app set a default
UncaughtExceptionHandler that swallows the exception with no action.

Note that such an inappropriate UncaughtExceptionHandler will still
cause threads to die without the app being killed, which it should be.
In an exception then happens on the main thread, the app will freeze
until the ANR dialog kicks in after a few seconds. I have manually
verified that this behavior is unchanged from before this CL.

No new integration tests are included because the default system
behavior has not changed.

Bug: 29624607
Change-Id: Ie87377b0bcadc3ba4083a8ab1bedb8f3dd95a4bd
2016-08-08 17:59:28 +01:00
Jakub Pawlowski
d167db19a9 Fix bad index usage
Bug: 27999121
Change-Id: Ie2ba6f71bbf6f789a3c1016ba2f0051b809ac87e
2016-08-04 20:19:52 +00:00
Mudumba Ananth
709b11ef7a HFP 1.7 profile update (3/4)
-> Android Framework changes to add support for
   an API to send indicator change in AG.
-> Added a system intent for broadcasting assigned number(ID)
   of the supported HF indicators and their values (if received)

Bug: 19983867
Change-Id: If26a7ae5da5686da72ebca9ec3decfe086e2ffb6
(cherry picked from commit 0d98ebf997)
2016-08-03 17:55:04 -07:00
Jakub Pawlowski
8e970d6ab4 Remove write type from GATT descriptor writes (1/4)
According to the Bluetooth Core specification v4.2, Vol 3, Part G,
section 4.12.3: "The Attribute Protocol WRITE REQUEST is used
for this sub-procedure".

Change-Id: I141dd24ed5911d5d485b52a1b661835b9960921a
2016-08-03 10:42:47 -07:00
Tobias Thierer
258a554f62 Merge "Stop profiling on uncaught exception." 2016-08-03 10:42:37 +00:00
Jakub Pawlowski
d13954e8c6 Merge "GATT Server refactoring (2/4)" 2016-08-03 10:21:44 +00:00
Treehugger Robot
1085be0ce3 Merge "Zygote: Add CAP_WAKE_ALARM to system_server to properly support timerfd alarms" 2016-08-03 00:04:19 +00:00
Jakub Pawlowski
d75f512aa2 GATT Server refactoring (2/4)
Bug: 27999121
Change-Id: Ia5f91298a4b01b62adebc8adc30f27f757259588
2016-08-02 20:45:06 +00:00
Tobias Thierer
8ad86a3d1a Stop profiling on uncaught exception.
When "handling" an uncaught exception, make an attempt to stop
profiling. In case profiling was active, this will avoid losing
the profiling buffer.

This change is required as a base in order for
https://android-review.googlesource.com/#/c/249721/
to merge cleanly.

(Cherry picked from commit 4c79fea9ef)
Bug: 26291225
Change-Id: I35f352e5f28eafe4702da9eae587c3b65c360b3a
2016-08-02 17:32:39 +01:00
Hidehiko Tsuchiya
5acd41d155 Fix the API compatibility of "UriMatcher#addURI"
The previous patch (ef23bf19 Allow leading slash in path...) made
a single slash path unmatchable.
To solve it, this patch stops removing a slash character if the path
only has a slash character.
Now, a single slash is a matchable path for a URI without path string.

Bug: 29524484
Change-Id: I90b357aa48be1a3e0cf36e75ed2a9d6532908972
2016-07-30 01:47:50 +00:00
Neil Fuller
b69f61472a Add a finalize() method to StrictJarFile
Bug: 25896372
Test: Booted device, installed CTS apps
Test: run cts --class android.util.cts.StrictJarFileTest
Change-Id: I35e238dadd48d2c4ca53ac37a4c5aacdd471a93a
2016-07-29 14:26:35 +01:00
John Stultz
5733f387be Zygote: Add CAP_WAKE_ALARM to system_server to properly support timerfd alarms
The when the timerfd alarm logic was added to the kernel, an oversight was made
and the interface does not check for the CAP_WAKE_ALARM permissions as required
via other kernel methods to trigger an alarm timer.

In v4.8-rc kernels, the change 2895a5e5b3a ("timerfd: Reject ALARM timerfds
without CAP_WAKE_ALARM") was added by Eric Caruso <ejcaruso@google.com>.

After this change (which may be backported to -stable), the AlarmManager will
fail on the first timerfd_create call, and will not be able to set the time
or handle other necessary functions.

The solution here is to add CAP_WAKE_ALARM to the system_server process.

Change-Id: Ifdb16f3ef42711e553f727165de3922d484b5be4
Signed-off-by: John Stultz <john.stultz@linaro.org>
2016-07-28 12:41:04 -07:00
Tobias Thierer
851d806dbd Changes for upgrade to OkHttp 2.7.5
- Use com.android.okhttp.Dns in place of com.android.okhttp.internal.Network
 - Specify TimeUnit.MILLISECONDS for timeouts which 2.7.5 allows and
   brings us closer to 3+

Change-Id: I95b5d72a94ebe1389f7c2e8d95903aa1aadd944b
2016-06-29 17:41:32 +01:00
Marie Janssen
382871b03f Fix links to Bluetooth Guide
Change-Id: I5798c3d71c7cc9c509e0f7b04fa140168b0fdc11
2016-06-20 10:26:31 -07:00
Alan Viverette
34cd48bcd8 Merge "Chronometer: Update the value only if displayed on screen" 2016-05-27 14:18:20 +00:00
Pavlin Radoslavov
9a69daa706 Add missing "try ... finally" safeguards
Safeguards for code protected by ReentrantReadWriteLock.

Bug: 28734075
Bug: 28799467
Change-Id: Ib7f598a92e8df6bd855ca48cdd094c1c73a935f2
(cherry picked from commit e957a8a0b4)
2016-05-24 17:14:51 -07:00
Pavlin Radoslavov
2b016a1711 Reduced the impact of "synchronized" statements
* Removed "synchronized" statements that are not needed
* Replaced "synchronized" statements with Read/Write lock as
 appropriate. The lock protects the access to and the setting of
 BluetoothAdapter.mService and BluetoothManagerService.mBluetooth and
 associated state.

Bug: 28734075
Bug: 28799467
Change-Id: I8f8281c505f0a1ae0add1e14a3caba1f5b2a98e4
(cherry picked from commit eb50a39e98)
2016-05-24 21:17:42 +00:00
Sergio Giro
80755a5a25 ZygoteInit: install AndroidKeyStoreProvider in the Zygote
Instead of in activity thread. That way, we can warm up (ie,
precompute cached values) this provider and AndroidBCWorkaroundProvider
(which are installed together) so that the computation doesn't
happen in the app. As a result, the time spent in the first call to
SSLSocketFactory.getDefault() decreases by ~5ms in angler userdebug.
Measured with an app calling SSLSocketFactory.getDefault in onCreate
and timed it with System.currentTimeMillis() .

(cherry picked from commit 69de32071c)

Bug: 28545496
Change-Id: Ic4e11d058fb404eaa92db925a3e765fc3bef7ae2
2016-05-23 11:24:34 +01:00
Sungki Kim
636ab03dfe Fix GATT autoConnect race condition
As pointed out here:
https://code.google.com/p/android/issues/detail?id=69834

registerApp() causes onClientRegistered() to happen before autoConnect
is set. This patch fixes that.

Bug: 28861330
Change-Id: Ie1174c0f224f5084178439420b383164d22d542c
2016-05-19 18:23:44 +00:00
Alex Light
4bc3d32b15 Merge "Make fake libart for misbehaving apps be loaded." 2016-05-18 21:05:42 +00:00
Alex Light
0a72ba7d3f Make fake libart for misbehaving apps be loaded.
Bug: 27775991
Change-Id: Ie4eba211e876ec0643ce6ecf6a110f3cb5e0f57e
(cherry picked from commit 20ed24fc0c)
2016-05-18 08:14:34 -07:00
Neil Fuller
41c9dc3b69 Add support for ICU data pinning in the Zygote
Upstream ICU caches use SoftReferences. On Android this means
that useful cached data initialized in the Zygote are "lost" when
the Zygote GCs and cannot be shared with apps. This change makes use
of an Android patch to ICU to ensure References created during
Zygote initialization are "strong". i.e. they are never collected.
This prevents them being GCd and ensures they can be shared between
applications.

After switching ICU to use strong references, this change
also creates DecimalFormatSymbols objects for common ULocales
(ROOT, US and the user's default, if different). DecimalFormatSymbols
makes use of an ICU Reference cache and this alone has been shown to
improve the construction time of java.text.DecimalFormat by 1-1.5
milliseconds on a Seed device. This saving applies the first time one
is created in each app for each locale, and again if SoftReferences
have been cleared.

The cost to the heap size of the Zygote has been measured at ~107k.
This value will change as more caches are switched to use the new
CacheValue class.

Formatting is typically performed on the UI thread and the intention
of this change is to reduce app start up time and jank in apps like
the Dialer which do a lot of formatting when scrolling lists. The
change may also enable more virtual memory page-sharing between
apps, though this is not the specific goal.

Bug: 28326526
Change-Id: Ia2c73f6525f05b1aa81e57a31eed1616decf6bb5
2016-05-18 11:15:11 +01:00
Sergio Giro
aa733e0b41 Merge "ZygoteInit: warm up JCA providers during preload" 2016-05-17 15:50:50 +00:00
Sergio Giro
b07595d194 ZygoteInit: warm up JCA providers during preload
This makes the time spent in the first call of an app to
SSLSocketFactory.getDefault() drop from ~240 ms to ~50 ms. In M
it was around ~6ms. This is due to the fact that, while instantiating
the default factory, all providers are initialized.

In order to obtain the timings above, I created an app calling
SSLSocketFactory.getDefault in onCreate and timed it
with System.currentTimeMillis() .

(cherry picked from commit 6cb7b1c476)

Bug: 28545496

Change-Id: Ic5aab3ece609d9fef06fee4ccb83d8371af075b2
2016-05-17 14:39:44 +01:00
Andre Eisenbach
233f48e3fa Merge "Fix GATT Characteristic write type serialization" 2016-05-14 00:11:42 +00:00
Treehugger Robot
21d061ec2e Merge "Fix documentation bug in SQLiteDatabase" 2016-05-12 22:25:20 +00:00
Steve Pomeroy
1276b5f29e ContentValues: improve documentation
Correct and clarify the documentation for ContentValues.

Change-Id: Iddf54da093e97c32da2568eab8802b1b2715303b
Signed-off-by: Steve Pomeroy <steve@staticfree.info>
2016-05-12 21:18:15 +00:00
Steve Pomeroy
8fc3144fa5 Fix documentation bug in SQLiteDatabase
The documentation incorrectly states that, "[insertWithOnConflict
returns] the primary key of the existing row if the input param
'conflictAlgorithm' = CONFLICT_IGNORE". Unfortunately, SQLite does
not provide such functionality.

Close: https://code.google.com/p/android/issues/detail?id=13045

Change-Id: Ife919c4dcf7bf703b692d338d1fb5844a532dd39
Signed-off-by: Steve Pomeroy <steve@staticfree.info>
2016-05-12 21:16:55 +00:00
Chad Brubaker
d58e7b2d15 Merge "Support TrustedCertificateStore.findAllIssuers" 2016-05-12 19:18:47 +00:00
Chad Brubaker
d4b6c696e1 Support TrustedCertificateStore.findAllIssuers
(cherry-picked from commit aa6c3c3e25)
Change-Id: I176ec42c9907e50ee218e4fb352b530ca797be46
2016-05-12 11:15:47 -07:00
Jakub Pawlowski
2168fc29a2 Fix GATT Characteristic write type serialization
Default writeType for GATT characteristic was not being
serialized into Parcel. This cause errors when trying to
write into Characteristic.

Bug: 27910548
Change-Id: Ib2f88cf991123eaea244f16fa36deb0d773c5a33
2016-05-11 06:53:10 +00:00
Pavlin Radoslavov
f74b830e68 Fix divergent equals and hashCode behavior
Calling Objects.hash with a byte[] will call the identity hashCode on
the byte[] and this doesn't agree with the use of Objects.deepEquals
in equals.
Bug caught by error prone.

Also, replaced usage of Objects.deepEquals(mServiceDataUuid, ...) with
Objects.equals(mServiceDataUuid, ...), because mServiceDataUuid
is an Object of type ParcelUuid.

Bug: 28585195
Change-Id: Id92734874339985fedafe1a28286a6a4dcd88d3b
2016-05-06 12:05:47 -07:00
Hans Boehm
fb9f6acd6f Improve grammar in startService() documentation.
Change-Id: If72f710caa2e85512636d6f7ddacff2426cfb835
2016-05-05 13:09:28 -07:00
Sebastian Kaspari
eb101a700c FloatingToolbar: Fix javadoc for closeOverflow().
Change-Id: I450fc603ae5fe49f08f580594352cc1120cc104d
2016-04-28 16:34:33 +00:00
Dimitry Ivanov
eb5866d4b0 Create linker namespace for the system server classloader
Bug: http://b/27702070
Change-Id: I12c9448e877202937cf558de75042bcb46f6a933
2016-04-27 10:22:09 -07:00
Dimitry Ivanov
5d7d777fa6 Extract pathclassloader initialization to a separate class
To be able to reuse this code when creating a classloader for
the system_server.

Bug: http://b/27245894
Bug: http://b/27702070
Change-Id: I928175a39a1beb0446d863a5b8f5edf94686e768
2016-04-26 13:16:54 -07:00
Tobias Thierer
ca01820735 Avoid instantiations of Boolean that are immediately unboxed.
Replaced Boolean.valueOf() -> parseBoolean() across frameworks/base
(not including Am.java, which I'm leaving for a separate change).

Also fixed a couple of other valueOf()s in SyncStorageEngine.

Bug: 28289401
Change-Id: I2c6fb39a465885e7e625ed8894b1b9f8a30da5bc
2016-04-22 14:21:12 +01:00
Tobias Thierer
4bd017d6a5 frameworks/base: Avoid Long object allocations in Long.valueOf()
Replace usages where the Long is immediately unboxed or thrown
away with Long.parseLong().
In TaskRecord.java, I also fixed up similar uses of
{Boolean,Integer}.valueOf()

Tested: built frameworks/base successfully.

Bug: 28289401
Change-Id: I1fad536853a68c7b0707cbf02989aca155064843
2016-04-21 16:23:56 +01:00
Henrik Baard
eac10ab5f4 Doze settings example not matching real keys
The keys used in the example for the Doze timeouts does
not match any real key. To avoid confusion the example
should match the existing keys.

Change-Id: I0306c542dac9e38aea7d172a3e0f7472d327c73c
2016-04-19 07:50:24 +02:00
Ajay Panicker
1dfa47ee3e Merge "Allow factory reset when bluetooth is off (1/2)" 2016-04-01 23:46:33 +00:00
Andre Eisenbach
2358043983 Merge "Always use Write Request for GATT descriptor writes" 2016-04-01 00:18:48 +00:00
Ajay Panicker
db005bdce9 Allow factory reset when bluetooth is off (1/2)
Bug: 27348444
Change-Id: I6c2709371b86581709649d7faf09391230449b9b
2016-03-31 23:39:15 +00:00
Andre Eisenbach
060956bf67 Fix log spam in getCharacteristicById()
Bug: 27744135
Change-Id: I43f6358484729dedd85eb52432ad9805a66ff81e
2016-03-31 18:00:14 +00:00
Andre Eisenbach
942aebc959 Always use Write Request for GATT descriptor writes
According to the Bluetooth Core specification v4.2, Vol 3, Part G,
section 4.12.3: "The Attribute Protocol WRITE REQUEST is used used
for this sub-procedure".

Change-Id: I86e4e1d3a8bfd7d78dfed8419f8abd2d7e89b2bc
2016-03-31 17:59:44 +00:00
Andreas Gampe
453a77c702 Merge "Frameworks/base: Refactor package manager" 2016-03-29 21:24:19 +00:00
Adam Lesinski
7160459611 Merge "Fix javadoc for View.getMeasuredHeight() and View.getMeasuredHeightAndState()" 2016-03-29 18:24:39 +00:00
Andreas Gampe
288e3f50dd Frameworks/base: Refactor package manager
Minimal cherry-pick to keep things alive.

Bug: 27689078

(cherry picked from commit bdd30d86ef)

Change-Id: I06b9d75f58c59cb07ef5170f784ea6745168efaa
2016-03-29 11:05:03 -07:00
John Reck
f3edaf6a43 Merge "Enable shader cache for applications that shared UID with multiple packages too" 2016-03-22 14:25:35 +00:00
Jakub Pawlowski
a9e27ec0ab Use handles to identify GATT attributes (4/4)
Bug: 27778668
Change-Id: I01e095939df2f8dc433f14b473957c815ecade74
2016-03-22 00:39:28 +00:00