19398 Commits

Author SHA1 Message Date
Dianne Hackborn
028ceeb472 Fix issue #14617210: Apps can gain access to any ContentProvider...
...with grantUriPermissions (no user interaction required)

Add a new path in to the activity manager to start an activity as
if it was directy started by the original calling activity.  This
is specifically for the resolver activity and chooser activity to
be able to safely launch its data after serving as an intermediary.

Access to the new method is highly restricted -- it can only be
called by an activity that is declared in the framework apk itself,
and the execute-as-the-caller behavior will only happen if the
code is running under the system uid.  (This means we could still
have these run in the client's process in some cases and still work
correctly.)

Note there is some commented out code here half-done about trying
to propagate security exceptions back to the original calling
activity.  This would be really nice, especially now with the
chooser activity running in a system process so any errors made
by the app (bad permission grants, bad intents, etc) no longer
actually appear in the app so are essentially invisible.  I'd
really like to figure out a way to propagate these exceptions back
to the app, but this is hard since the app's process may no
longer even be running at this point.

Also tweak activity manager dump output to split the recents
dump out from activities, since recents can now be super large.

Change-Id: I50410c4783faf9302c69290589a068a846e0973a
2014-08-18 11:35:12 -07:00
Dianne Hackborn
89e4ae2f50 Merge "Work on issue #16629489: Google (Play?) Services eating through battery" into lmp-dev 2014-08-16 03:56:00 +00:00
Dianne Hackborn
d953c53d3b Work on issue #16629489: Google (Play?) Services eating through battery
There is a bug in how we deal with name overflows combined with resetting
the battery stats data.  If we do a reset while a wakelock is being
actively held that has been put into the overflow bucket, then we can
end up reducing the number of known wake locks in the list so when after
that it is released we try to release it under its real name rather than
the overflow name.

This means we need to keep track of which wake locks have been placed
in the overflow bucket while they are actively being used, so we can be
sure to properly handle it as part of that bucket until it is eventually
released.

This makes things...  somewhat more complicated.  So now we have a class
to take care of all these details, and also use it for other places where
we have the same overflow semantics sync and job stats.

Also fix potential deadlock -- BatteryStatsHelper needs to call on to
ConnectivityManager to find out of there is telepohny, however we use
that class when doing a dump while the battery stats lock is held.  To
fix this, we check the connectivity state up in the battery stats service
before acquiring the lock and propagate that information through to the
dump code.

Change-Id: Ib452206af5c36f4b0f03cc94d2845d36613d1ba5
2014-08-17 12:39:36 -07:00
Dianne Hackborn
57137289a2 Merge "Fix issue #17082301: replacePreferredActivity is ignoring userId" into lmp-dev 2014-08-16 03:56:00 +00:00
Dianne Hackborn
f2ac276127 Fix issue #17082301: replacePreferredActivity is ignoring userId
It was being given the argument and just...  ignoring it.

But the bulk of this change is to make replacePreferredActivity
better about replacing -- it now detects if the request will not
make a change and, in that case, just do nothing.

The reason for this?

It turns out that each time you install an app, the telephony
system is calling this function over 20 times to set the default
SMS app.  This is almost always doing nothing, but before this
change it means we would re-write packages.xml over 20 times...!

There are definitely more improvements that can be made here (delaying
write of packages.xml to allow them to batch together, reducing
the amount of calls being made), but until then this is a big
improvement.

Change-Id: I02c4235b8ecd5c13ef53e65d13c7dc2223719cec
2014-08-16 19:34:13 -07:00
Adrian Roos
d47ad033c3 Fix bars jumping to black on activity launch
During animations, the wallpaper crop is the
union of the start and end crop. This prevents
the system bars from jumping to black when an
activity with opaque bars is launched.

Bug: 16441036
Change-Id: Ic0f3bc2e83b9830514a3456a27ae6f23716f3240
2014-08-18 14:37:18 +00:00
Jason Monk
95d9ad0f79 Merge "Fixes to lock task API from API review" into lmp-dev 2014-08-16 04:32:18 +00:00
Terry Heo
03861d0721 Merge "CEC: Handle Remote Control command" into lmp-dev 2014-08-16 04:12:14 +00:00
Terry Heo
3e1564ee39 CEC: Handle Remote Control command
Generate an Android key event when a UserControl message is received.
And report menu state active when a MenuRequest message is received to
notify sender can send a UserControl message.

Bug: 16938007
Change-Id: Id8f393dc254508b9e7a6fa203f8e817fbe807e38
2014-08-18 16:09:10 +09:00
Chulwoo Lee
3d34b54ca8 Merge "Fix ConcurrentModificationException in PersistentDataStore" into lmp-dev 2014-08-16 04:01:11 +00:00
Jungshik Jang
4612a6e111 Implement MHL send key action.
This class introduces two classes, MhlSendKeyAction and
HdmiMhlKeycode.
 - MhlSendKeyAction is a feature action that manages MHL message
for RCP, Remote Control Pass Through.
 - HdmiMhlKeycode is a collection of MHL keycode including keycode
mapping between MHL and Android keycode.

Bug: 16966459
Change-Id: Ib3f7229c71b66837cd0d239e5af1940dfccee7df
2014-08-18 11:16:47 +09:00
Chulwoo Lee
404bef8a1d Fix ConcurrentModificationException in PersistentDataStore
BUG: 17092853
Change-Id: I613c90b5b78ce317996edb2fda1703aaa318fb1e
2014-08-17 23:44:49 +00:00
Jinsuk Kim
98f4c16a7b Merge "CEC: Replace the usage of logical address with id for HdmiDeviceInfo" into lmp-dev 2014-08-16 04:12:14 +00:00
Robert Greenwalt
804322564b Merge "Fix a logic error so mtu works." into lmp-dev 2014-08-16 03:52:42 +00:00
Michael Wright
8e5482f6ed Merge "Change 'disable hardware keyboard' to 'show input method'" into lmp-dev 2014-08-16 03:52:42 +00:00
Michael Wright
665366a305 Change 'disable hardware keyboard' to 'show input method'
Previously it implied that the hardware keyboard would be disabled,
but really the toggle would just enable showing the IME even if a
hardware keyboard was present. Changed the string and swapped the
semantics to be more clear about the behavior.

Bug: 14066881
Change-Id: I9c8a7eb98b5277f1d09cc19fa7402e9b4cf51d92
2014-08-17 17:51:19 -07:00
Robert Greenwalt
3f05bf4d78 Add tcp buffer size conduit to NetworkAgent.
bug: 16549611
Change-Id: I7d97dedea2c7c1aed2eccb185645889424508591
2014-08-17 15:14:29 -07:00
Dianne Hackborn
90f58b4447 Merge "Make sure we initialize to enable the default voice interaction service." into lmp-dev 2014-08-16 04:29:45 +00:00
Jae Seo
c22d0c0941 TIF: Make passthrough related method names consistent
Bug: 17063792
Change-Id: Id76b37ae1507db5d78319b8786b395353ded70e1
2014-08-16 04:52:56 +00:00
Dianne Hackborn
16ec0808b5 Make sure we initialize to enable the default voice interaction service.
We weren't taking care of the case of an upgrade to L.  The main
change here is that the voice interaction service setting now has
an empty string when the user has explicitly said they don't want
one, so when it is null we will initialize it to its default.

Change-Id: Icdd30b4f09498f8928cea759a64628bd43bc5d0e
2014-08-15 18:34:10 -07:00
Robert Greenwalt
43074032d6 Fix a logic error so mtu works.
bug:17046179
Change-Id: I744a2fd425627da16d9779df3a96541506e0b6b3
2014-08-15 17:53:05 -07:00
Robert Greenwalt
bd431ee5d3 Merge "Configure MTU based on network MTU parameter" into lmp-dev 2014-08-15 19:10:34 +00:00
Jeff Davidson
cab3eb0c0b Merge "Fix default scorer provisioning." into lmp-dev 2014-08-15 21:23:40 +00:00
Jeff Brown
3edf5272fb Add trace tag for power management.
Instrumented the basic power manager state transitions,
calling into the Power HAL, setting the display power mode,
and setting the backlight.

Bug: 17004602
Change-Id: I4e362162ddfd7292a7eea8b5d029ce3f6593c4a9
2014-08-16 01:21:41 +00:00
Christopher Tate
6cbc07b7c0 Merge "Tighten restore-at-install behavior" into lmp-dev 2014-08-15 21:23:40 +00:00
Julia Reynolds
d438deffad Merge "Apply lockdowns when user restrictions are set." into lmp-dev 2014-08-15 19:03:20 +00:00
Julia Reynolds
3d9eb78fe9 Apply lockdowns when user restrictions are set.
Previously DMAgent would apply these lockdowns before/
after setting the matching user restrictions.

Bug: 16701642
Bug: 16945830
Bug: 16944983
Change-Id: Ib4f7145055687f12408d6ccacd8e6380406a32b2
2014-08-15 16:16:38 -04:00
Jeff Sharkey
3e3b251f46 Merge "PackageInstaller API refactoring." into lmp-dev 2014-08-15 18:56:10 +00:00
Jeff Sharkey
a0907436c0 PackageInstaller API refactoring.
Switch to using IntentSender for results to give installers easier
lifecycle management.  Move param and info objects to inner classes.

Bug: 17008440
Change-Id: I944cfc580325ccc07acf22e0c681a5542d6abc43
2014-08-15 15:57:02 -07:00
Christopher Tate
a63246d6da Tighten restore-at-install behavior
Harden the guarantee that if we're asked about a possible restore,
we always ALWAYS report back to the package manager.  This involved
closing "should never happen" edge cases around provisioning/auto-restore
setting that nevertheless were happening.

Also, on the auto-restore setting front, make sure to plumb that
system API through appropriately, since going behind its back and
manipulating the secure setting directly would cause things to get
out of step.

Bug 17060654

Change-Id: I52ca9c1ffbfc0bd6b57196157500d0868bfc2989
2014-08-15 11:22:01 -07:00
Ruchi Kandoi
3d69256fdf Revert "PowerManager: Adds a call to reduce refresh rate while device is in BatterySaverMode"
This reverts commit d54157e2e92f58e997c4bdb50e026e6a0d0121fd.

Bug: 16654179
Change-Id: Id4f22c0a4e23518881ac58ad969c16c4612306a2
2014-08-15 18:29:00 +00:00
John Spurlock
528dcd2fbe Zen: tweak audience interruption logic.
Only check audience for calls & messages.

Bug:17061146
Change-Id: I7f0176a7184c725fef393784fe8ccb0eb7f49ff7
2014-08-15 14:05:47 -04:00
John Spurlock
4db0d98b42 Zen: Downtime now a condition provider, persist conditions.
- Persist the entire exit condition instead of only the id.
- Make downtime a proper condition provider (similar to the
  existing countdown provider for time-based conditions)
- Move all downtime-related items out of ZenModeHelper and
  into the new condition provider.
- Reevaluate downtime more often, when any of its inputs change.
- Make sure downtime appears as an available condition in the
  condition panel when applicable.

Bug:16296125
Bug:16211189
Bug:17031767
Change-Id: I1d8269a4e6fe170ce776bf932dbbdfb29dd25dd7
2014-08-15 15:06:15 +00:00
Narayan Kamath
29564cd245 Remove system_server classes from the boot image.
We set the system_server classpath in the environment
(like we do with BOOTCLASSPATH). After the zygote forks
the system_server, we dexopt the classpath (if needed)
and then launch the system server with the correct
PathClassLoader. This needed several small / medium
refactorings :

- The logic for connecting to installd is now in a separate
  class and belongs in the system_server.
- SystemService / SystemServiceManager have now moved to
  classes.jar. They are only used from there, and since they
  use Class.forName, we want them to be loaded by the
  system_server classloader, and not the bootclassloader.
- BootReceiver now moves to frameworks.jar, because it is
  used by ActivityThread and friends.

bug: 16555230

Change-Id: Ic84f0b2baf611eeedff6d123cb7191bb0259e600
2014-08-15 13:37:03 +01:00
Narayan Kamath
6c4b9de8f1 Validate instruction sets passed to installd.
We don't want folks passing down arbitrary strings.

bug: 16837404
Change-Id: I73ac66b376f1401f9f95f3c6323da6242ac8ed3d
2014-08-15 12:50:10 +01:00
w19976
15afd81158 Configure MTU based on network MTU parameter
Add logic to obtain the mtu from the network PCO parameter and set it to kernel
when the mobile data connection is established. When there is no PCO mtu configured
from the network, the mtu size defined in the corresponding APN will be used. In case
no mtu size is defined for an APN used for data connection, the MCC/MNC based MTU
defined  in the framework overaly will be applied.

bug:17046179
Change-Id: I6465d4b8f2076aaa380ae3617fb3f24adbe136d4
2014-08-14 20:34:13 -07:00
Jeff Davidson
56f9f73a5a Fix default scorer provisioning.
Use Settings.Global instead of SharedPreferences (which don't work) to
track whether we've run the one-time provisioning step of activating
the build-time configured default scorer.

Bug: 16980605
Change-Id: I093cdd6f4f1110960078a186191c4e02b5543d6a
2014-08-14 16:47:23 -07:00
Jeff Sharkey
82d6d337b3 Merge "Some networks may have null ifaces, I guess?" into lmp-dev 2014-08-14 16:46:52 +00:00
Jeff Sharkey
9da2f1e007 Some networks may have null ifaces, I guess?
Seems like a bug further upstream, but guard ourselves against it
for now.

Bug: 17033841
Change-Id: Id0e5895c3389b63d4e34b1fb064efef8b72cd609
2014-08-14 22:42:27 +00:00
Jason Monk
48aacba761 Fixes to lock task API from API review
Adding ComponentNames and some splitting/renaming of broadcasts.

Bug: 17005622
Change-Id: I9ece3553310fb20b0c3c3e4032b408e86384363a
2014-08-14 11:37:58 -04:00
Craig Mautner
7c9ee19cbd Fix race condition between binder deaths
If a Binder dies there is a race between activity manager and window
manager to see who can handle the binderDied call first. If the
activity manager wins the race it will remove the activity and task
but leave the windows around. Until the WindowState.binderDied call
is made and all animation is complete the windows will try to access
the task that they were associated with.

This fix removes the windows of an activity when the activity is
removed. It also defers removal of the activity and task until
exiting windows have completed their animation.

Fixes bug 17031518.

Change-Id: Idf52f55c5feb0cad4e3664ef2eae5b7e95bbf490
2014-08-14 23:17:15 +00:00
Jinsuk Kim
8960d1b155 CEC: Replace the usage of logical address with id for HdmiDeviceInfo
Introduced 'id' of HdmiDeviceInfo to replace the direct use of logical address
as id. This accomodates the identification of MHL device with ease. Also updated
TIF to use id instead of logical address.

Bug: 16986744
Change-Id: Ifa827fb5e5fcf1d2f612f0845accbfe5c03734aa
2014-08-14 10:52:23 +09:00
Craig Mautner
4a8dddbf18 Clean up app following death when creating service
If an app has died, run through the cleanup before relaunching its
service.

Also a little simplifying refactor.

Fixes bug 16979752.

Change-Id: I376cbef2ea00fc626588386317f092cc6dea0bdc
2014-08-13 18:15:28 +00:00
RoboErik
1d2a1c917f Merge "Pipe caller's identity through volume methods" into lmp-dev 2014-08-13 01:30:58 +00:00
RoboErik
0dac35af2c Pipe caller's identity through volume methods
setStreamVolume and adjustStreamVolume were always being called
from the session service's uid/package. This adds the plumbing to
allow the original app's info to be passed in to the audio service
when volume is changed.

Change-Id: Ib36639dab1e518b435161dc453c8ba9351df3e9b
2014-08-14 10:21:26 -07:00
Craig Mautner
eb829f2f9f Merge "Disassociate system windows from apps" into lmp-dev 2014-08-12 23:14:35 +00:00
Sandeep Siddhartha
a31413a325 Fix delete clause for sound model DB
Since UUIDs contain '-'s they need to be wrapped within quotes

Bug: 16985919
Change-Id: I624a512ca7fc2494a7737b5465c94a9e161dec88
2014-08-13 10:52:17 -07:00
Craig Mautner
a5d29971f8 Disassociate system windows from apps
If an app launches a system window remove the app token.

Fixes bug 16825063.

Change-Id: I7c7403e0958f3cd9f6dd5e2964b2e9cabc51ded7
2014-08-12 18:57:49 -07:00
Jae Seo
82324ec662 Merge "TIF: fix IOException at PersistentDataStore.save()" into lmp-dev 2014-08-14 16:46:52 +00:00
Wonsik Kim
7ed8901f12 TIF: fix IOException at PersistentDataStore.save()
Bug: 17018435
Change-Id: Ic999aaf59ae942ee8279576ec1e2ce2fa62bd6e0
2014-08-14 10:06:12 -07:00