14982 Commits

Author SHA1 Message Date
Christopher Tate
e6f81cf1f6 Support different watchdog timeouts for different entities
We need to be able to perform very lengthy operations on some threads
(e.g. the I/O thread responsible for installing multi-gigabyte APKs) but
still have long-run deadlock/hang detection applied to those threads.
Previously the watchdog mechanism applied the same policy to all
monitored threads: unresponsive after 60 seconds => restart the system.

Now, each monitored entity can have its own independent timeout after
which the watchdog declares deadlock and restarts the runtime.  The
halfway-finished intermediate thread stacks are dumped based on the
specific entity's declared timeout, not the global 30 second checking
interval.

With that new mechanism in place, the Package Manager's lengthy-I/O
thread watchdog timeout is raised to 10 minutes.

Bug 11278188

Change-Id: I512599260009c31416b2385f778681e5b9597f05
2013-10-24 10:46:28 -07:00
Adam Lesinski
bb8aae5b19 Merge "Improve Jank for translucent activities" into klp-dev 2013-10-24 17:44:58 +00:00
Craig Mautner
4697bea3fd Disable time consuming debugging code.
Scanning bitmaps for monochromicity takes time. Lots of time. Don't do
it.

Fixes bug 11366278.

Change-Id: I7a8ad42751311fc39efc27fb4c51522fc1ba0523
2013-10-24 09:13:14 -07:00
Adam Lesinski
76afd1f129 Improve Jank for translucent activities
The previous jank improvement only worked when closing
an app, not when bringing one forward (hitting home button).
This should cover the specific case that is being missed: Having the
Home task being brought to front over a translucent window, with
a wallpaper behind both tasks.

bug:11253262
Change-Id: I200ef6fe2dda8d9ab4e1f82059b4f888c59007f4
2013-10-23 17:54:25 -07:00
Craig Mautner
4d4dd1e173 Merge "Search further than one task for fullscreen." into klp-dev 2013-10-23 22:35:25 +00:00
Craig Mautner
39e1c5a75e Search further than one task for fullscreen.
When a non-fullscreen task over home launches another non-fullscreen
task then the home task might not be displayed. Looking all the way
down the task stacks until reaching a visible, fullscreen activity or
home provides the right information.

Fixes bug 11273803.

Change-Id: I8dab0956c1cda06ddb7850ea3ffac7f6a223c6ad
2013-10-23 15:14:22 -07:00
Igor Murashkin
44d04aa0ac am: Increase dropbox buffer size to 256KB (from 128KB)
Minor changes for dumping stack traces:
- Print the native traces right after foreground/persistent apps
- Also include mediaserver, sdcard, and surfaceflinger in traces

Bug: 11321322
Change-Id: Ic09b7da316a5f197dda0ac3bde06f75574cc2166
2013-10-23 14:43:05 -07:00
John Spurlock
36439b4312 Decouple IME_ACTIVE and IME_VISIBLE for hardware keyboards.
Reserve IME_VISIBLE for when software keyboards are actually
showing.

Bug:11186297
Change-Id: I4e09a7de353e564bd1a97dadd603d3104254fa56
2013-10-23 17:02:53 -04:00
Dianne Hackborn
910c285793 Merge "Fix issue #11278906: Some wm commands fail on shell users" into klp-dev 2013-10-23 17:44:21 +00:00
Dianne Hackborn
2d76a1a068 Merge "Fix issue #11323037: Android apk incorrectly marked as running in app processes" into klp-dev 2013-10-23 17:44:11 +00:00
Dianne Hackborn
0cca3db9ad Fix issue #11278906: Some wm commands fail on shell users
Binder.clearCallingIdentity makes everything better.

Change-Id: I31cd9478c857553b3cf1ea54d5b4987571788796
2013-10-23 10:23:39 -07:00
Dianne Hackborn
237cefbcee Fix issue #11323037: Android apk incorrectly marked as running in app processes
The android package is now a special case, not being added to the package list
when creating a multi-process component.  There is no need, since this package
is actually the framework itself which must be loaded in every process.

Also cleaned up some of the procstats dump output to help see what is going
on here.

Change-Id: If65d35ecd562f3154bdebfded69c454af6ce8c96
2013-10-22 19:15:49 -07:00
Christopher Tate
5f474fcb6d Merge "Edge case: overriden system package moved & became privileged in OTA" into klp-dev 2013-10-22 23:38:02 +00:00
Christopher Tate
9f08820025 Edge case: overriden system package moved & became privileged in OTA
Because properly continuing permission grants post-OTA has changed
policy to include privilege considerations based on install location,
make sure that we re-evaluate when we determine that the apk has
moved from its pre-OTA location.

Bug 11271490

Change-Id: I6c09986e2851a67504268b289932588457c05dfc
2013-10-22 15:36:01 -07:00
Craig Mautner
798adeffb0 Don't use transient states for wallpaper animation.
The WindowManagerService member mLowerWallpaperTarget is not stable
throughout an app transition. Relying on it to be stable causes the
intra-wallpaper animation to start out right but after the windows
have been relayed out there is no longer a lower wallpaper target.
This causes the wallpaper to start tracking the animation of the
current wallpaper target rather than remain stable.

Switching to a new variable that saves the state of wallpaper
animation at the start of the animation fixes bug 11240590.

Change-Id: I336a59c47665fcf61019f567b8663956ff0e4940
2013-10-22 14:50:52 -07:00
Craig Mautner
4000630999 Merge "Check for home activity when switching focus." into klp-dev 2013-10-22 20:01:12 +00:00
Craig Mautner
04f0b70c13 Check for home activity when switching focus.
When finishing or stopping an activity the code was automatically
refocusing to the next activity on the same stack independent of the
task's onTopOfHome flag. When the activity eventually finished or
stopped it would then honor the onTopOfHome flag.

This fix examines the onTopOfHome flag and arranges the focus
correctly if home is the next activity to run.

Fixes bug 11318263.

Change-Id: I73a8f5e82de04b01acaffe366b085f9e475e1451
2013-10-22 12:31:01 -07:00
Craig Mautner
7408234985 Merge "Make sure mFocusedStack is never the home stack." into klp-dev 2013-10-22 17:36:57 +00:00
Craig Mautner
d1bbdb462a Make sure mFocusedStack is never the home stack.
There were circumstances where mFocusedStack could be assigned the
home stack. If this were ever to occur then all subsequent tasks would
be put on the home stack. This fix ensures that there is no way that
mFocusedStack will ever be assigned to the home task.

Fixes bug 11271189.

Change-Id: I7ddd9b6bcbf2787cbe2f44b461ad057ae2241f00
2013-10-22 09:53:20 -07:00
Craig Mautner
24ba3234ca Merge "Do not delete stacks that are not empty." into klp-dev 2013-10-22 04:31:12 +00:00
Craig Mautner
19d9bd54d3 Do not delete stacks that are not empty.
The possibility existed that an activity was set to a task that it was
already being set to. If that were to happen, and it was the only
activity in the only task of the stack the stack would be deleted.
This fixes that situation and logs it as well to confirm that it does
fix bug 11272935. Logging to be deleted upon successful monkey run
exhibiting the log.

Change-Id: I436fdcc9a3734adad81d3ef90f29b93b3ac4dfcd
2013-10-21 20:05:26 -07:00
Jeff Brown
534103d400 Merge "Fix issues catching up to touch events after a short pause." into klp-dev 2013-10-22 01:03:55 +00:00
Christopher Tate
7eb83c597f Merge "Preserve window sizes when rebatching alarms" into klp-dev 2013-10-22 00:58:42 +00:00
Christopher Tate
3e04b47216 Preserve window sizes when rebatching alarms
The existing code wasn't retaining the requested window bounds, if any,
and so could wind up rebatching alarms into much longer potential
delivery windows than originally demanded by the caller.  This could
wind up delivering alarms outside their designated windows entirely.

Bug 11324357

Change-Id: I4d418cd08702e397b3c7692b412d4bf51d5d9e4b
2013-10-21 17:51:31 -07:00
Adam Lesinski
e17e0f0e6c Merge "Fix jank for translucent window transitions" into klp-dev 2013-10-22 00:13:17 +00:00
Adam Lesinski
43d8d3355b Fix jank for translucent window transitions
When a translucent window is closing, the transition
animation to Launcher is janky because Launcher is
expected to be 'opening' but it has always been open
underneath the translucent window. Therefore, the
animation applied to the translucent app appears
janky.

bug:11253262
Change-Id: I9b6af3291d119e6927401f63785b12f25573f4eb
2013-10-21 16:41:48 -07:00
Jason Monk
0aeca87233 Merge "Make setting PAC require CONNECTIVITY_INTERNAL" into klp-dev 2013-10-21 21:40:17 +00:00
Jason Monk
1aeaf84a38 Make setting PAC require CONNECTIVITY_INTERNAL
Also disables all setting of PAC networks through the internal AsyncChannel
methods.  PAC can only be saved through addOrUpdateNetwork for permission
checks.

Bug: 11316946
Change-Id: I51016b578080c342a5e5d536ea9a3fdd4fe16644
2013-10-21 15:28:44 -04:00
Christopher Tate
d570dae577 Merge "Fix priv-app edge case across OTAs" into klp-dev 2013-10-21 18:31:14 +00:00
Christopher Tate
628946a6ef Fix priv-app edge case across OTAs
In this case:

   1. Privileged system app FOO is overlain by an installed update,
   2. FOO was replaced during an OTA,
   3. The new in-system FOO introduced new privileged permission requests
      that had not been requested by the original FOO,
   4. the update version of FOO still had a higher version code than
      the new FOO on the system disk, and
   5. the update version of FOO had been requesting these same (newly-
      added-to-system-apk) permissions all along;

then the newly-added privileged permission requests were incorrectly being
refused.  FOO should be able to use any privileged permission used by the
APK sited on the system disk; but instead, it was only being granted the
permissions used by the *original* version of FOO, even though the system
FOO now attempted to use them.

Still with me?

The fix is to (a) properly track privileged-install state when processing
known-to-be-hidden system packages, and (b) to tie the semantics of the
permission grant more explicitly to that evaluated state, rather than
using the prior (rather fragile) fixed-up privilege calculation applied
to the overlain apk's parse records.

Bug 11271490

Change-Id: Id8a45d667e52f3b5d18109e3620d5865f85bb9c9
2013-10-18 18:11:05 -07:00
Svetoslav
7f11d0db2d Merge "Clear the caller identity when dumping print system state." into klp-dev 2013-10-18 20:26:38 +00:00
Jeff Brown
786dccf9f5 Fix issues catching up to touch events after a short pause.
When the app spends more than half a second responding to a touch
event, the input dispatch eventually decides to stop sending it
events until it catches up.  (This is when the ANR clock starts.)
However, due to a bug in the timing logic, if the app eventually
does respond again we would resume delivery but only send one
event at a time until the queue was completely drained again.
This meant it could take a long time to catch up and process all
events.

The problem is that we were comparing the current time with the
waiting event time.  So when events became older than half a second,
we would simply stop streaming and end up serialized.

This change fixes the timing logic such that the streaming timeout
is based on the delivery time of the waiting event rather than
the event time itself.  Now we only stop streaming when it has
been over half a second since the waiting event was delivered
so we resume streaming immediately as soon as some waiting
events are handled.

Bug: 11278743
Change-Id: Ic8c68ee372a07f7caa4168eefcabf9b8a8ad5d87
2013-10-17 19:40:40 -07:00
Jeff Sharkey
0c0f1e2eac Merge "Include external storage devices in DocumentsUI." into klp-dev 2013-10-18 01:46:52 +00:00
Jeff Sharkey
8f4c15d8e4 Merge "Plumb through physical device UUID and label." into klp-dev 2013-10-18 01:45:58 +00:00
Robert Greenwalt
b1f0bba1bd Merge "Change how we use provisioning url so post works" into klp-dev 2013-10-17 23:00:42 +00:00
Robert Greenwalt
536b3c2b6c Change how we use provisioning url so post works
Needed to do an http post instead of a get for one carrier.
Do this by putting an auto-submitting form in the data to be
interpreted as a html doc by the browser.  The ACTION_VIEW
intent only works on http uri, but by specifying ACTION_MAIN/
CATEGORY_APP_BROWSER we could use data:text/html.

bug:11168810
Change-Id: Ifd33e1c3c7f9f40b6add39e446e6a7d7cde22549
2013-10-17 12:46:52 -07:00
Jeff Sharkey
1f706c6cd1 Include external storage devices in DocumentsUI.
Include volume UUID in generated document IDs to uniquely identify
volumes over time.  Show volume label to users.  Watch for mount
changes to update available roots.

Bug: 11175082
Change-Id: Ia151bde768587468efde0c1d97a740b5353d1582
2013-10-17 10:55:32 -07:00
Dianne Hackborn
fc69e2b5ad Merge "Increase size of broadcast history lists on non-svelte devices." into klp-dev 2013-10-17 16:13:24 +00:00
Dianne Hackborn
4c51de4933 Increase size of broadcast history lists on non-svelte devices.
Change-Id: Ibd25379778dac8eb1aed30d4788e032f290d9b69
2013-10-16 23:34:35 -07:00
Jeff Sharkey
5aca2b8dc4 Plumb through physical device UUID and label.
vold now parse out UUID and label for inserted physical devices,
and reports them to framework.  Add these to hidden StorageVolume
class for use by DocumentsUI and MediaProvider.

Remove last JNI method in FileUtils!

Bug: 11175082
Change-Id: I1cfcd1ade61767b103f693319ea2600008ee2e3c
2013-10-16 16:34:21 -07:00
Dianne Hackborn
2a272d42a3 Fix issue #11217255: Setup Wizard ANR when adding new user profile from settings.
Two problems addressed here:

- If a call to startActivity() comes in on an activity that is finishing, we can
  end up putting the new activity in a stack that isn't actually in use any more
  (if the finishing activity is the last one on that stack).  This is a bad case,
  anyway, so if this happen the treat it as not being called on an existing
  activity and switch to NEW_TASK to find a task for it.

- There was a bug in handling PACKAGE_CHANGE broadcasts that would result in the
  app's processes being killed, even though the cleanup through the activities
  was done.  This could leave the activity stack in a bad state.  Fix this to
  correctly provide an app id for the changing package so that its processes are
  killed.

Change-Id: Iece04e0cf95025c3d30353d68bf3d14fd39d44c3
2013-10-16 13:34:33 -07:00
Svetoslav
5fe07aa7a8 Clear the caller identity when dumping print system state.
bug:11251806

Change-Id: I295db22f327bc81f911cf638295415689d54fe56
2013-10-16 11:15:45 -07:00
Robert Greenwalt
1b7f99b90a Merge "Retry captiveportal check even if only one addr" into klp-dev 2013-10-16 00:31:04 +00:00
Craig Mautner
4270ebc7db Merge "Remove debug logging." into klp-dev 2013-10-16 00:27:50 +00:00
Craig Mautner
a7f2bd4da7 Remove debug logging.
Change-Id: I5d7c11e8b8525bfc8eb87bb0fff4f71337b4a39d
2013-10-15 16:13:50 -07:00
Craig Mautner
4f1df4faed Restore window manager stack order on user switch.
Only the activity stacks were being restored. Also add needed debug
logs.

Fixes bug 11223831.

Change-Id: Ief42688721c49e8cea14277619c797bf7c25b859
2013-10-15 15:44:14 -07:00
Robert Greenwalt
b9acff3707 Retry captiveportal check even if only one addr
We're getting some false positive results on this check and
while it was coded to try 3 times given sufficient independent addrs
the default url resolves to a single address so we'd just try once.

Rework to try again even with fewer urls to try to reduce the false
positives.

Also adds a random query param to fool proxies into not caching.

bug:9972012
Change-Id: Ib719f40ec612065ca6bcd919549fc1164506d35a
2013-10-15 12:43:30 -07:00
Jason Monk
c09e591102 Merge "Fix error when PAC set rapidly" into klp-dev 2013-10-15 11:15:01 +00:00
Carlos Valdivia
cdb9ea79a5 Merge "Package checks for resloving recovery tokens should be user sensitive." into klp-dev 2013-10-15 01:45:45 +00:00
Craig Mautner
cf8a6ca9aa Merge "Clear displayStartTime whenever starting activity." into klp-dev 2013-10-15 01:28:48 +00:00