Commit Graph

5120 Commits

Author SHA1 Message Date
Adam Lesinski
401c208db8 Add WorkSource to BLE scanning API
This will allow apps that do work on behalf of others to correctly blame
those apps for the power implications of BLE scanning.

Bug:22718669
Change-Id: I1cbca8cf7bbe1ec5b804228f466fd9dd6fc68183
2016-08-22 11:40:23 -07:00
Glenn Kasten
1fda533936 Squashed commit of the following:
commit efa6f355b06675aa4d0879fd279e22c16d5c046c
Author: Mikhail Naganov <mnaganov@google.com>
Date:   Wed Aug 10 12:25:13 2016 -0700

    MIDI: Use server-side socket in blocking mode for virtual devices

    Since virtual MIDI servers may misbehave, blocking mode will throttle
    them if clients are not coping with their sending speed.

    Bug: 29413812
    Change-Id: I9c4a2a7a7ea3ea060c93fedc7d0f033427c557c9

commit 755dfb5f83749d3963c63d98d692307f8271c804
Author: Mikhail Naganov <mnaganov@google.com>
Date:   Fri Jul 8 13:26:19 2016 -0700

    Protect MIDI framework against client blocks in MidiReceiver.onSend

    Make the server-side socket non-blocking when creating MidiOutputPort
    for clients. Thus if a client ceases to read from its side of the
    socket pair, the server will just fail to write instead of blocking.

    One drawback is that the MidiOutputPort on the client can't indicate
    that it has become dysfunctional, but it's not possible without
    changing the API.

    Bug: 29413812
    Change-Id: I9dfcbdd214a815cea8fd1365324fd78ca459268a

commit c740b13953761f58233ac651a0b5227733b1bdcc
Author: Mikhail Naganov <mnaganov@google.com>
Date:   Fri Jun 17 04:11:25 2016 -0700

    UsbMidiDevice: Clean up terminology and fix comments

    When working with physical MIDI devices, an *input* stream is used
    for reading from *output* port of the device, and vice versa. Thus,
    using "input" and "output" without specifying whether it's a stream
    or a port is confusing.

    Clarify names of counter variables, and fix a couple of comments
    that were incorrect due to this confusion. No functional changes.

    Change-Id: If561eaca4bade94e9296d2c703c9fcebc91296e2

commit 4269c6417287737624f6165a8bbeb5aa427de9a0
Author: Glenn Kasten <gkasten@google.com>
Date:   Thu May 5 18:49:16 2016 -0700

    Update MIDI package summary

    Bug: 28625060
    Change-Id: If552ca8e1a0666d402b5f536699bf3fb09c1e324

commit 862d40b73168bde7d0be5280d997985c18061014
Author: Phil Burk <philburk@google.com>
Date:   Tue Apr 19 15:56:24 2016 -0700

    MidiDevice: do not open ports on closed device

    Fix involves client side mIsDeviceClosed flag.

    Bug: 24949216
    Change-Id: I666284a787fbb9a710d2372fb424e8e54f6a2825
    Signed-off-by: Phil Burk <philburk@google.com>

commit 6f1de358b9f2616e03f4655f01454770915ddd66
Author: Phil Burk <philburk@google.com>
Date:   Mon Apr 18 16:05:28 2016 -0700

    MidiService: fix resource leak

    The proxy object was being used to match when adding or removing objects.
    But they are different each time. So now we use an asBinder() object.

    Bug: 28153736
    Change-Id: I1bccebf1e9464668db757ff08b41902d0cf0e3a7
    Signed-off-by: Phil Burk <philburk@google.com>

commit f7386bd535bb8a1d7f8df8f44a1748ab770c991a
Author: Phil Burk <philburk@google.com>
Date:   Tue Apr 5 14:19:53 2016 -0700

    MidiDevice: fix connectPorts for same Process

    If connectPorts() was called for a device in the same process then
    the connection would die when the ParcelFileDescriptor was closed.

    Bug: 26406775
    Change-Id: Id0538452593b4761ac2a93d366ade76d2e35ce73
    Signed-off-by: Phil Burk <philburk@google.com>

Change-Id: I4dfc2a2cbaf04bf1a790ae2cb39bf74fb5bb16ac
2016-08-17 08:45:39 -07: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
Tobias Thierer
258a554f62 Merge "Stop profiling on uncaught exception." 2016-08-03 10:42:37 +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
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
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
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
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
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
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
Elliott Hughes
2a8749354a Merge "Changes of root storage space unmounting time on Zygote Process" 2016-03-21 21:06:09 +00:00
David Srbecky
1b4afc275f Merge "[DO NOT MERGE] Add flag to "am start" to enable native debugging" 2016-03-16 17:11:09 +00:00
Ian Rogers
9b222c8fda Extra generic type information to aid certain javacs.
In particular this is needed for the code to compile using the error prone
analyzer.

Change-Id: I09904705ced909ead750cb30d0f96c994132a51c
2016-03-15 21:09:40 -07:00
Tamas Berghammer
21bdaf14a2 [DO NOT MERGE] Add flag to "am start" to enable native debugging
[Backported form internal CL854980]

Specifying the new flag will enable several features in the runtime
required by the native debugger to debug Java and C++ code at the same
time.

The enabled features:
* Force JIT (never use the interpreter)
* Debug info generation
* Disable some optimizations

Change-Id: Iaf5ab649715a0c274bd1b0fc64e483705da53cd0
2016-03-14 11:48:40 +00:00
Calin Juravle
76ac402779 Merge "Update DexFile.getDexOptNeeded in framework" 2016-03-09 11:57:36 +00:00
Calin Juravle
6ce213fe2c Update DexFile.getDexOptNeeded in framework
Partial cherry pick from commit 693f997cc8

Change-Id: I0fe34541e3cf77fb6e6dbe689b7cf55cb78dbe05
2016-03-08 15:50:19 +00:00
Adam Powell
68ab418cb4 Merge "Restore auto-launch behavior for ACTION_CHOOSER with a single choice"
am: 9d39648de4

* commit '9d39648de4c9070ddc770d301e822bdc72db4ba9':
  Restore auto-launch behavior for ACTION_CHOOSER with a single choice
2016-03-07 23:50:51 +00:00
doheon1.lee
289e4fa658 Changes of root storage space unmounting time on Zygote Process
Zygote process forks every child process for launch the SystemServer and other
applications. When child process is forked, unmount storage inherited
from Zygote process is executed before it gains its own root storage
space.
If Zygote have no storage spaces, unmount operations not needed to
get relevant permission storage space.
Thus unmount is executed only once shortly before the SystemServer is forked.
And the child processes do not unmount its inherited root storage space.

Change-Id: I311ca7ea2c93085f42579f8cf8bdc7ef1d570a04
2016-02-22 08:42:02 +09:00
Adam Powell
2f6ec22f67 Restore auto-launch behavior for ACTION_CHOOSER with a single choice
For the initial release of Marshmallow auto-launching was suppressed
for ChooserActivity if there was only a single choice in order to let
the user confirm what would be launched. In practice, many apps use
ACTION_CHOOSER when they should probably use implicit intents, but
still others have use cases where setting a default doesn't make sense
and the user should still be able to make a choice when one is
available.

As the user confirmation didn't buy much in terms of developer API
expectations (ACTION_CHOOSER being a forced choice) and it adds
speedbumps to existing apps in the ecosystem, revert this change.

Bug 27243827

Change-Id: Id8fd5385d5b1f459e80b0096efe7e2944264739a
2016-02-18 14:41:41 -08:00
Pavlin Radoslavov
91fc6d1f9c Merge "Use GID "wakelock" to control access to kernel wakelock"
am: 60d142c54b

* commit '60d142c54b16be08d8352c7fd1510538014839f7':
  Use GID "wakelock" to control access to kernel wakelock
2015-12-29 01:31:16 +00:00
Pavlin Radoslavov
fbd5904ce6 Use GID "wakelock" to control access to kernel wakelock
* Added GID "wakelock" (3010) to the list of groups the System Server
   belongs to.

 * Added GID "wakelock" to the list of assigned groups for the
   "android.permission.BLUETOOTH_STACK" Android permission.

 * Grant CAP_BLOCK_SUSPEND to processes that belong to GID "wakelock"

Bug: 25864142
Change-Id: I8a9a5f11e4a9ecd1abf2d4f4b90ec89b3101332e
2015-12-28 15:14:44 -08:00
Narayan Kamath
f59c02a65e Merge changes from topic \'aosp-merge-24-12\'
am: e0e81bf407

* commit 'e0e81bf407508ec096c752948f8794af5fd480ca':
  Special case system_server to not create the JIT code cache.
  Don't use IntegralToString
  Track libcore commit 85d69e16fe1e59e50c1ad228e754abf325088362.
  Track API changes to java.lang.ref.Reference.
  Remove merge markers from preloaded-classes
  Move StrictJarFile from libcore to framework
  Switch RecoverySystem impl to use sun.security.pkcs
  API update for OpenJdk based libcore
  Use libcore/known_oj_tags for the javadoc stage.
  Stop preloading fortress classes
  Use HexDump instead of java.lang.IntegralToString
  Add core-oj to the list of core library jars.
2015-12-24 04:07:42 -08:00
Nicolas Geoffray
a877235156 Special case system_server to not create the JIT code cache.
(cherry picked from commit 3c43b38633)

Change-Id: Ic7b0887f9edcb950fad98ccbe66cab6949fbdc52
2015-12-22 13:45:09 +00:00
Przemyslaw Szczepaniak
e69a31d750 Use HexDump instead of java.lang.IntegralToString
java.lang.IntegralToString is being removed, replaced
all its usage by com.android.internal.util.HexDump.

(cherry picked from commit 3f72604be8)

Change-Id: I0527d580f5975dca0dfaa6f86fa3695dd49d0849
2015-12-22 13:10:55 +00:00
Adam Lesinski
72c1a0a110 Merge "DO NOT MERGE: Fix batterystats battery level int packing" into mnc-dr1.5-dev am: 1d6d4c5a69
am: d5808d0d35

* commit 'd5808d0d356c5c7263f1ad0982a221c7a0f1df07':
  DO NOT MERGE: Fix batterystats battery level int packing
2015-12-16 00:05:41 +00:00
Adam Lesinski
d5808d0d35 Merge "DO NOT MERGE: Fix batterystats battery level int packing" into mnc-dr1.5-dev
am: 1d6d4c5a69

* commit '1d6d4c5a695051ccb9b455306b155bad5d6f136a':
  DO NOT MERGE: Fix batterystats battery level int packing
2015-12-15 23:57:13 +00:00
Adam Lesinski
5f8c8186ec DO NOT MERGE: Fix batterystats battery level int packing
We introduced some new flag at the lowest significant bit of the
battery level int but failed to account for it when unpacking.

Bug:25596467
Change-Id: I4320e6fcc208ec6de249b14fe3e399ab2f32d839
(cherry picked from commit 6902052c77)
2015-12-15 22:12:10 +00:00
Bryce Lee
0510ad1bc9 Allow access to deprecated LOCK_PATTERN_ENABLED flag. am: 4614596a39 am: 36393a5674
am: 4ab8b0696a

* commit '4ab8b0696a4383b7dec2fc2dc4f17596bcd9216a':
  Allow access to deprecated LOCK_PATTERN_ENABLED flag.
2015-12-15 00:11:06 +00:00
Bryce Lee
4ab8b0696a Allow access to deprecated LOCK_PATTERN_ENABLED flag. am: 4614596a39
am: 36393a5674

* commit '36393a5674bf50b351b5961a194ce2814ca00140':
  Allow access to deprecated LOCK_PATTERN_ENABLED flag.
2015-12-14 23:57:38 +00:00
Bryce Lee
36393a5674 Allow access to deprecated LOCK_PATTERN_ENABLED flag.
am: 4614596a39

* commit '4614596a395b6c86fff3f35a07edda2e848d743c':
  Allow access to deprecated LOCK_PATTERN_ENABLED flag.
2015-12-14 23:43:54 +00:00
Bryce Lee
4614596a39 Allow access to deprecated LOCK_PATTERN_ENABLED flag.
It is possible that older platforms may have not cleared the lock pattern,
but instead only checked this flag to determine the lock pattern enabled
state. In such cases, upgrading to a platform with that only checks the
lock pattern can lead to the lock screen being re-enabled by accident.
These new methods allow this condition to be identified and resolved.

Bug: 26029690
Change-Id: I8f7ebc0e1915049afe49c219c87010aa38a16244
2015-12-14 14:39:10 -08:00
Adam Lesinski
0b754d122c Prevent DivideByZero error in BatteryStatsImpl am: ba88e68fe4
am: 4e4ff058c1

* commit '4e4ff058c1a0b4b77f468a206a790bb6f084f616':
  Prevent DivideByZero error in BatteryStatsImpl
2015-12-10 14:54:38 -08:00
Adam Lesinski
4e4ff058c1 Prevent DivideByZero error in BatteryStatsImpl
am: ba88e68fe4

* commit 'ba88e68fe47b66f1fc5d10c15f04f20fe662399e':
  Prevent DivideByZero error in BatteryStatsImpl
2015-12-10 14:47:09 -08:00
Adam Lesinski
ba88e68fe4 Prevent DivideByZero error in BatteryStatsImpl
It was assumed that when a UID had either rx or tx bytes/packets that it would
have the other as well.

Bug:25706750
Change-Id: Iefac59a6bd02876aed9a0bac218d187b81807a95
2015-12-10 00:48:24 +00:00
Amit Mahajan
0dfeda60c0 Merge "Adding StateMachine.hasMessages(), StateMachine.hasDeferredMessages()" into mnc-dr1.5-dev am: cd2cc9aa9b
am: d515b124f7

* commit 'd515b124f7f966a3e4725dc6f6179ade869df636':
  Adding StateMachine.hasMessages(), StateMachine.hasDeferredMessages()
2015-12-07 23:32:22 +00:00
Amit Mahajan
d515b124f7 Merge "Adding StateMachine.hasMessages(), StateMachine.hasDeferredMessages()" into mnc-dr1.5-dev
am: cd2cc9aa9b

* commit 'cd2cc9aa9bfdc21a06ffd7049a4b4ad07bbf6886':
  Adding StateMachine.hasMessages(), StateMachine.hasDeferredMessages()
2015-12-07 23:10:55 +00:00
Yohei Yukawa
30e321b54a Merge "Fix special handling of a fake language code "tl"."
am: 9fd2af6b32

* commit '9fd2af6b323ef98695701a8bcfdd3ca1c4dd7965':
  Fix special handling of a fake language code "tl".
2015-12-03 19:10:30 +00:00
Yohei Yukawa
ed65bc0c62 Fix special handling of a fake language code "tl".
My previous CL 92280cd309 [1] had a silly
mistake that "tl" is converted to "fil" but "tl_PH" is not.

  [1] I94f203bddceb9c87710cb187cc3cc0ee6d9092a5

With this CL, the compatibility rewrite-rule from "tl" to "fil" starts
working regardless of the existence of countly/variant subtags in locale
string.  So far the only affected platfrom is API Level 23.

Bug: 20696126
Change-Id: Ica9cd2baac002c406f92331aadd7725d7424046a
2015-12-02 18:22:41 -08:00
Adam Lesinski
6902052c77 DO NOT MERGE ANYWHERE: Fix batterystats battery level int packing
We introduced some new flag at the lowest significant bit of the
battery level int but failed to account for it when unpacking.

Bug:25596467
Change-Id: I4320e6fcc208ec6de249b14fe3e399ab2f32d839
2015-11-20 10:58:02 -08:00
Amit Mahajan
8ed715e31e Adding StateMachine.hasMessages(), StateMachine.hasDeferredMessages()
Bug: 23067429
Change-Id: Ia66fd1a6ff248520e86f6e502767b22c4d9d4814
2015-11-18 19:56:47 +00:00
Nicolas Geoffray
5485d81578 Merge "Remove DEBUG_JIT from Zygote flags."
am: cf49583bd0

* commit 'cf49583bd02d01b5d7aa57912d5469b466722c65':
  Remove DEBUG_JIT from Zygote flags.
2015-11-18 10:54:19 +00:00
Nicolas Geoffray
245ec92b65 Remove DEBUG_JIT from Zygote flags.
The flag is being obsolete by the move to JIT.

(cherry picked from commit 9abbf45c8d)

Change-Id: I3ce4577e81f91e9dd55d44116e0f9e2014bd00b8
2015-11-18 10:07:53 +00:00
Todd Kennedy
3b91bd2173 resolved conflicts for 7de7e0b0 to stage-aosp-master
(cherry picked from commit 9f86026444)

Change-Id: I4e45e5bbaebb98b0e740167eaf7517f99d917f30
2015-11-16 10:43:53 -08:00
Nick Kralevich
02cc328d9d Merge "system_server: allow /proc read access to other UIDs"
am: 51b48b3877

* commit '51b48b38774b8babe339890e1c888dfd8647ee72':
  system_server: allow /proc read access to other UIDs
2015-11-09 20:28:30 +00:00
Nick Kralevich
368513fa99 system_server: allow /proc read access to other UIDs
Add system_server to AID_READPROC, to allow system_server to read
/proc entries associated with other UIDs.

Bug: 23310674
Change-Id: I1602b8ee30670cde4ed56e2f901524c105895352
2015-11-07 17:04:04 -08:00
Adam Powell
d6db05e4b1 Merge "Don\'t query ChooserTargetService apps that haven\'t been used recently" into mnc-dr-dev am: b8cfc12c3f am: 8c7b3e872b
am: f998b602bb

* commit 'f998b602bb0145ab7c0a0556795bbaaf69661c74':
  Don't query ChooserTargetService apps that haven't been used recently
2015-10-21 21:01:18 +00:00