When calling getContentProvider() across user boundaries, and
creating the provider for the first time, we need to clear caller
identity. (We could have torn down the provider while the system
was under memory pressure.)
Bug: 17409650
Change-Id: I67713a03e5f7106f5e8fcf33fe3fdae81ce644ec
When device is encrypted the user has to authenticate in order to decrypt
the data partition which is required for running accessibility services
and Text-To-Speech. In order to address this issue we are falling back
to use the default password if there is an enabled accessibility service
and the user has secure lock. This will enable the user to authenticate
when accessibility layer is completely functional.
bug:17671790
Change-Id: Iafffe7bcd234008cf91ffb5011b21b803dca227a
This ensures that we'll only adjust volume on a session's stream if
that stream is actually in use.
bug:17690423
Change-Id: I5fce8265a015bbc5034afa16719d9a0bbf257598
This makes copies of objects with bundles before posting to another
thread and is more aggressive about locking before making assignments
of mutable objects.
bug:17692568
Change-Id: I28e8229718b862c485e870fd2ca06a3a18a7c454
Previous calculation would always exit downtime on Sunday mornings,
due to the target day ending up at zero (an invalid day).
Bug:17682999
Change-Id: Icc5f01a42c3c644170eea9e60442cf77ce15a06c
Most of this logic is simply removed from ConnectivityService.
The captive portal detection is now done by the NetworkMonitor.
The notification logic is still left in ConnectivityService as
it's used by both the NetworkMonitor and telephony's mobile
provisioning logic.
bug:17324098
Change-Id: Ibd1c42b1a75795f90a6483d3d0a5a14f88b193d8
Currently, LegacyTypeTracker sends out connected broadcasts
before updating its internal lists of networks. This creates a
race condition where an app can query LegacyTypeTracker state
(e.g., via getActiveNetworkInfo) as soon as it gets the
broadcast, and get information that has not been updated.
Bug: 17540101
Change-Id: Iefd6d5e9fd0b427c5872166208831f70fcef8b6f
Add the app directory to the arguments for starting a process.
Add a check for NeedsNativeBridge and a call to PreInitializeBridge
in the native fork code.
(cherry picked from commit 2eacd06bfb82b33dfcbccafbcfc0bf1218484bb5)
Bug: 17671501
Change-Id: I970db5b284b0c12e2d8a45df3950c1fff2927a4e
This checks if the phone app is currently getting or in a call when a
media key event is sent and sends it to the phone session instead of the
foreground app if it is.
bug:17527302
Change-Id: Ie5d6cf0c897da81d106f2b1a0561b79f4fc35e82
..."uid 2000 does not have android.permission.UPDATE_DEVICE_STATS"
Make sure to clear calling identity before getting into the guts
of the activity manager. Also fix the places the activity manager
calls in to battery stats to not require a permission check, anyway.
Change-Id: Ifd90937875b9fe0c36aa3f5cf1ec173746914e6b
The code to recover when running processes are removed from the
LRU list turned up an existing problem where we would remove a
persistent process from the LRU list, making it more obvious.
Now it is fixed.
Change-Id: I94ccb924b3e5649b2819d3392b6f6c9c725dc903
Uninstall for all users should check whether package
is admin for any user not just user 0.
Bug: 17657954
Change-Id: Ia116248b5889fc02dd46816a132e03c8e62662c9
Add basic filename protection, also only file names that are for
app icons so this can't be abused to access thumbnails.
Change-Id: I2831c0f3f08a39aa734f93f76b6fd4aaf97e87c6
Cleaner paths and better error reporting when a problem goes wrong
while binding an application. This gets rid of the (recently added)
error about removing a process that hasn't been killed, and cleanly
kills the process along with more detailed errors about where things
failed.
Change-Id: I710a209c14da1515929e6254396b793177eee115
Logic in WindowState caused a delayed layout on the starting window,
which forced another layout/draw pass, which was unnecessary. Making
the resize call happen sooner means that that request gets lumped in
with a pending layout request, so there's only one resulting draw.
This saves not only the second drawing operation, but also the creation
of an extra buffer in SurfaceFlinger for that second draw request. This
buffer is temporary, but can be quite large on some devices and push
the system over the memory edge in extreme situations. It's difficult
to track this memory usage difference as the buffer resides at a very
low level in the system. But you can see in systrace that the second
allocation (and the second draw) is not happening after the fix.
Issue #17570761 Constrain starting window to only one buffer
Change-Id: I0e0fff7efdc812730706afccbfb020dea3f8d3e2
In Priority mode, NoMan can block the telecom Ringer
indefinitely when looking up the caller contact details via
ContactsProvider.
Fix this by introducing a 3s timeout and assume the call
matches the call filter when the timeout is hit.
Bug: 17598245
Change-Id: Ia0893cf203e6ffd943c749719ebb9e0f0958eb01
Because user IDs are recycled it is not safe to leave this kind of
information around after deleting.
Bug: 17403144
Change-Id: I441f85750cf8818adaf62a1acdb2ba7b4bfc1b7e
Each time that window manager gets a notification that a display has
been added, removed or changed, run a pass through
performLayoutAndPlaceSurfaces. This ensures that
WindowAnimator.animate() runs once so that the surfaces of remote
displays can be updated with their visibility.
Fixes bug 17533991.
Change-Id: If8745527df86c74da75fbe26b8a2a6fddeb74d2a