Commit Graph

3179 Commits

Author SHA1 Message Date
Michael Jurka
d6277213f6 am f6a2133f: am 5f0a6009: Merge "Add API to get the built-in wallpaper" into klp-dev
* commit 'f6a2133fae6e8b5f8a8bee4afb5bda012bc88a1c':
  Add API to get the built-in wallpaper
2013-10-09 22:57:09 -07:00
Michael Jurka
5f0a600925 Merge "Add API to get the built-in wallpaper" into klp-dev 2013-10-10 01:17:38 +00:00
Dianne Hackborn
353ec47422 am 8029493f: am f012b777: Merge "Fix some doc issues." into klp-dev
* commit '8029493fa2a37da41a73dde60dd17fa53cb6a77a':
  Fix some doc issues.
2013-10-09 18:02:24 -07:00
Dianne Hackborn
ebc15ef80f Fix some doc issues.
Bug: 11079621
Bug: 10461610
Bug: 10461369
Bug: 10461417
Change-Id: I7fd966f3cda0660ba20fa15d7164dcac95efadd3
2013-10-09 17:36:57 -07:00
Jeff Sharkey
45d2358510 am 11591b73: am b3da3db3: Merge "Surface outgoing Uri permission grants." into klp-dev
* commit '11591b738d51e0d8e87e8825dc2fc7eaa517daa3':
  Surface outgoing Uri permission grants.
2013-10-09 15:12:35 -07:00
Jeff Sharkey
b3da3db34a Merge "Surface outgoing Uri permission grants." into klp-dev 2013-10-09 22:07:11 +00:00
Jeff Sharkey
bcaac0adec Surface outgoing Uri permission grants.
This enables apps to discover and clean up persisted Uri grants when
the underlying Uri becomes invalid, such as when an account is
removed.

Bug: 11142566
Change-Id: Ieeb36cb1155acf226327ebe91cdd30b822d69d1b
2013-10-09 14:32:11 -07:00
Michael Jurka
b668d0ba7e Add API to get the built-in wallpaper
Change-Id: I71cf4111fb4e36bd8e78eb47695861349dc1750b
2013-10-09 12:12:34 -07:00
Jeff Sharkey
cb8c4501d4 am d92dd8ff: am fcd8a39e: Merge "Install providers enabled after app started." into klp-dev
* commit 'd92dd8ffcf3e7bce7d331e7ae9101ccba02baa67':
  Install providers enabled after app started.
2013-10-09 10:53:35 -07:00
Jeff Sharkey
dd97f4233f Install providers enabled after app started.
When an app has already been started, and a ContentProvider component
is enabled with DONT_KILL_APP, use the existing ProcessRecord to
install the provider.

Bug: 11118692
Change-Id: I990f18b337eb19768ee1db895f1e2eb982046cce
2013-10-08 17:02:26 -07:00
Nick Kralevich
fa06d03edf am 0b8fd029: am a299862d: Merge "Fix App Ops permission mapping structure."
* commit '0b8fd029c052784d4adee940eaa904a339db6716':
  Fix App Ops permission mapping structure.
2013-10-08 14:33:40 -07:00
Nick Kralevich
0b8fd029c0 am a299862d: Merge "Fix App Ops permission mapping structure."
* commit 'a299862dd2d46fda54678df07db66bef1a63bb9b':
  Fix App Ops permission mapping structure.
2013-10-08 14:30:11 -07:00
Dianne Hackborn
19a6a86ae1 am c35ae6e7: am c739a765: Merge "Wrong argument: handleUnstableProviderDiedLocked" into klp-dev
* commit 'c35ae6e784dcf1a3480fbcc12e09d51bdffce686':
  Wrong argument: handleUnstableProviderDiedLocked
2013-10-08 13:36:53 -07:00
You Kim
bc74de6722 Wrong argument: handleUnstableProviderDiedLocked
mProvider is HashMap<ProviderKey, ProviderClientRecord>. String
is not correct object for KEY. Complete removal using iterator.

Bug: 11086495

Change-Id: I51e4576544ef02ede6f96938689dd4e43ec6eb4f
2013-10-08 12:22:30 -07:00
Jeff Sharkey
9d1383c61c am 5e02e0a9: am bcc77b50: Merge "Add <intent-filter> support to <provider>." into klp-dev
* commit '5e02e0a9e1e075e3d451d929b0a67bf280c432ed':
  Add <intent-filter> support to <provider>.
2013-10-07 15:12:16 -07:00
Jeff Sharkey
85f5f81320 Add <intent-filter> support to <provider>.
For the new documents work, we're only interested in the subset of
ContentProviders that actually implement DocumentsContract.  Instead
of returning all providers, add <intent-filter> support to make it
easier to limit the set of returned ProviderInfo.

Define a well-known action for DocumentsProviders, and start using it
when querying for roots.  Continue supporting the old <meta-data>
approach until all apps have been updated.

Bug: 8599233
Change-Id: I05f049bba21311f5421738002f99ee214447c909
2013-10-07 14:19:13 -07:00
Robert Craig
f97616c7ba Fix App Ops permission mapping structure.
The entry to map the post notification op
to a permission is at the wrong offset
within the sOpPerms array. This patch
fixes the issue.

Change-Id: Ia241d274e484b6a24edbfb17b87bb887b61f1ee1
Signed-off-by: rpcraig <rpcraig@tycho.ncsc.mil>
2013-10-07 12:43:06 -04:00
Dianne Hackborn
7c55154d47 am 80e75d39: am 0d763a90: Merge "Implement issue #11050739: Show swapped out RAM" into klp-dev
* commit '80e75d3946fd4c5cdd913d217df1b8d32ec464ee':
  Implement issue #11050739: Show swapped out RAM
2013-10-03 15:39:36 -07:00
Dianne Hackborn
61509ca5ba am 479dde0b: am 6a6f96a2: Merge "Fix issue #10378741: configupdater needs to be explicit when it calls startService()" into klp-dev
* commit '479dde0bc21a1e9d0bb8dad801cfe015f6c7e416':
  Fix issue #10378741: configupdater needs to be explicit when it calls startService()
2013-10-03 15:39:33 -07:00
Dianne Hackborn
5eaac1ce33 am e31f959c: am d143d1ff: Merge "Fix issue #11044267: AppOpsManager.startWatchingMode should take a String" into klp-dev
* commit 'e31f959c68a9dfa00daa5b5580ced31badfb1127':
  Fix issue #11044267: AppOpsManager.startWatchingMode should take a String
2013-10-03 15:39:30 -07:00
Christopher Tate
64884eef54 am b61c8219: am ef4f8222: Merge "Fix cross-process race in initial files/cache dir creation" into klp-dev
* commit 'b61c82190d9d16cd4a7dff8af81aff7f43c19cc4':
  Fix cross-process race in initial files/cache dir creation
2013-10-03 15:38:47 -07:00
Dianne Hackborn
0d763a901e Merge "Implement issue #11050739: Show swapped out RAM" into klp-dev 2013-10-03 17:45:42 +00:00
Dianne Hackborn
6a6f96a296 Merge "Fix issue #10378741: configupdater needs to be explicit when it calls startService()" into klp-dev 2013-10-03 17:44:38 +00:00
Dianne Hackborn
d143d1ffd7 Merge "Fix issue #11044267: AppOpsManager.startWatchingMode should take a String" into klp-dev 2013-10-03 17:44:18 +00:00
Dianne Hackborn
fd6c7b12c3 Fix issue #10378741: configupdater needs to be explicit when it calls startService()
Not enough time to fix everything, so instead we'll make it a warning
in this release and finish up turning it into a target-SDK based
exception in the next release.

Change-Id: I5aae64a1225a145f03ba4162238b53d5e401aba2
2013-10-03 10:42:26 -07:00
Christopher Tate
cc866da37d Fix cross-process race in initial files/cache dir creation
Apps that run components in separate processes, especially that
host providers in separate processes, can hit a race condition
where two processes simultaneously discover that the files/cache
dir must be created, then each calls mkdirs().  One of these will
fail not because the dir couldn't be created, but because it lost
the race and mkdirs() returned false to signal that it already
existed -- and this was assumed to be a hard failure.

We now recheck existence after a mkdirs() failure to discern this
case and proceed appropriately.

Bug 10515463

Change-Id: I13fbdd838921223f75ab11faa47291c82b21c650
2013-10-02 18:16:24 -07:00
Dianne Hackborn
8883ced18a Implement issue #11050739: Show swapped out RAM
Add "swapped out" field to mem info everywhere.

Change-Id: I89abe8eb0e91fa5c193da93815dc592593c8a3c8
2013-10-02 17:40:05 -07:00
Jeff Sharkey
c7ce69853a am 50a8663d: am 437befc1: Merge "Docs change: annotate media intent actions." into klp-dev
* commit '50a8663d261a3fd7b26c1a17beac86090e3da4c8':
  Docs change: annotate media intent actions.
2013-10-02 10:45:28 -07:00
Dianne Hackborn
e4cb66fd77 Fix issue #11044267: AppOpsManager.startWatchingMode should take a String
Change-Id: I193a738f2e4ef147c22fb46cfa34ec14ad95d192
2013-10-02 10:36:15 -07:00
Jeff Sharkey
32cd2fb596 Docs change: annotate media intent actions.
Bug: 11043141
Change-Id: I66777c5ce25014d8e64da5b4ce3f70334befb0b7
2013-10-02 10:11:25 -07:00
Jeff Sharkey
7f60e70e81 am 666b998b: am 364fc14f: Merge "Detect wedged ContentProviders, treat as ANR." into klp-dev
* commit '666b998b67fe7bb6fc11dd6d683a18b5690afd39':
  Detect wedged ContentProviders, treat as ANR.
2013-10-02 09:35:14 -07:00
Jeff Sharkey
7aa7601c09 Detect wedged ContentProviders, treat as ANR.
All ContentProvider calls are currently blocking, making it hard for
an app to recover when a remote provider is wedged.  This change adds
hidden support to ContentProviderClient to timeout remote calls,
treating them as ANRs.  This behavior is disabled by default.

Update DocumentsUI to use a 20 second timeout whenever interacting
with a storage provider.

Bug: 10993301, 10819461, 10852518
Change-Id: I10fa3c425c6a7225fff9cb7a0a07659028230cd3
2013-10-01 09:50:41 -07:00
Daniel Sandler
5e833d6f57 am 723ad75e: Merge "API cleanups for Notification." into klp-dev
* commit '723ad75e107f57dc541dfca600745895e1251974':
  API cleanups for Notification.
2013-09-30 17:08:06 -07:00
Romain Guy
bb1d4d3896 am d6c1870d: am 5fceada3: Merge "Fragement, or Fragment: that is the question"
* commit 'd6c1870d434562a10e015915dd9da9f8a956661c':
  Fragement, or Fragment: that is the question
2013-09-30 16:23:05 -07:00
Romain Guy
d6c1870d43 am 5fceada3: Merge "Fragement, or Fragment: that is the question"
* commit '5fceada31f0dc8f8e003e9c1d0a0ed0363711343':
  Fragement, or Fragment: that is the question
2013-09-30 16:19:22 -07:00
Cyril Mottier
2de5082f43 Fragement, or Fragment: that is the question
Change-Id: Iac3a14b9d2d7b4bd1e452db987b3c5c95dbefd3b
2013-09-30 22:43:59 +02:00
Daniel Sandler
cf1d39b178 API cleanups for Notification.
- Calling build() on a Style now goes through the same
  codepath as calling build() on the Builder.
- Documented new constants and unhidden classes.
- Fixed crash in Action.clone().

Bug: 10112103
Bug: 10461196
Change-Id: I08cd94790b538a361ccf8ff3682f6a86a7812b95
2013-09-27 11:58:58 -04:00
Dianne Hackborn
8828d3a153 Fix issue #10919261: Don't clear OP_WRITE_SMS when resetting app prefs
Add a new array indicating whether each op allows itself to
be reset, and use it.

Change-Id: I494f630bda170e061196a380563512e9e77b51a8
2013-09-26 09:40:19 -07:00
Dianne Hackborn
66a9b2d739 Merge "Fix issue #10903002: com.facebook.katana keeps itself in A Services" into klp-dev 2013-09-25 23:04:50 +00:00
Dianne Hackborn
cbd9a52f25 Fix issue #10903002: com.facebook.katana keeps itself in A Services
Now when memory low, if a service's process is above
a selected pss, then the process is not allowed to go
in to the service a list.

Also simplified the normal meminfo details dump to not
include the shared dirty and shared clean sizes by
default, since these can be very confusing.  You will
still get to see them with the "-a" flag.

Finally some small steps to better managing service
processes in the LRU list, so hopefully we can some
day be better about letting them drop down in the list
when there isn't really much interesting happening in
the process.  Not yet used at this point.

Change-Id: I654bfd6d05de2a63120185ebb15ffda8cbeb5dac
2013-09-25 15:45:56 -07:00
Jeff Sharkey
e66c1778f8 Require that persistable Uri permissions be taken.
Change our Intent flag to indicate that a Uri permission grant is
persistable, but don't actually persist it until explicitly taken by
the receiving app.  This prevents apps from spamming each other if
persisted permissions aren't really required.

Remember the last time a persisted grant was taken by an app, and
use this to prune away the oldest grants when the number of grants
grows too large.  Allow apps to query persisted grants they are
holding, and allow them to release previously persisted grants. Add
public UriPermission class to return grant details and timestamp.

Track various permission strengths separately, and combine together
after each mutation pass.  Persistable grants are currently treated
like global grants, but they could be moved to have owners in the
future.  Require that grant holders trying to extend a persistable
permission actually hold a persistable permission themselves.

Bug: 10835779
Change-Id: I95b2f797c04ce7fd2612f9a644685dbd44e03759
2013-09-25 15:16:41 -07:00
Jeff Sharkey
0156a379e2 Merge "Allow saving to Downloads." into klp-dev 2013-09-23 21:28:07 +00:00
Jeff Sharkey
b180a65d41 Allow saving to Downloads.
Uses new column to mark writability.  Also filter file selection in
create mode to only allow writable files.

Bug: 10667164, 10893268
Change-Id: I90f74efbb7ac634fbdb3cc02a904a96a434d3605
2013-09-23 14:23:45 -07:00
Amith Yamasani
85f77c2b8b Merge "Unmarshall PFDs properly when hand-crafting interface stubs" into klp-dev 2013-09-23 21:14:51 +00:00
Amith Yamasani
c2be0d6183 Unmarshall PFDs properly when hand-crafting interface stubs
ParcelFileDescriptors now carry an optional socket fd to communicate
close events. So, make sure that the correct creator is called when
reconstructing parceled PFDs.

Bug: 10759966
Change-Id: Ic6b9ffb8cb7af5f3a12440def595f74682231866
2013-09-23 13:35:46 -07:00
Dianne Hackborn
9bb0ee9131 Issue #10461551: KLP API Review: AppOpsManager
Changed public constants from integers to strings.  Internally
everything is still integers, since we want that more efficient
representation for most things.

Changed the Callback interface to OnOpChangedListener.  We also
have a private versin that again takes an int, and tricks to
make both work.

Reworked the class documentation to be appropriate to the SDK
(as much as it can be); most of the existing documentation is
moved to the private implementation.  Also added documentation
of the MODE constants.

Change-Id: I4f7e73cc99fe66beff9194e960e072e2aa9458f8
2013-09-23 09:35:21 -07:00
Jeff Sharkey
dfed244876 Merge "Delegate mkdirs() to vold when lacking perms." into klp-dev 2013-09-20 22:56:07 +00:00
Jeff Sharkey
2d8b4e8013 Delegate mkdirs() to vold when lacking perms.
Apps without sdcard_r or sdcard_rw are still able to write to
their package-specific directory, but someone needs to first make
that directory on their behalf.  This change will delegate the
mkdirs() call through to vold when an app fails to create directly.

MountService validates that the path belongs to the calling user, and
that it's actually on external storage, before passing to vold.

Update Environment to make app-vs-vold paths clearer.

Bug: 10577808
Change-Id: I43b4a77fd6d2b9af2a0d899790da8d9d89386776
2013-09-20 14:34:02 -07:00
Dianne Hackborn
3bc8f78d7a Implement issue #10691475: Kill cached processes if about to...
...be uncached and too large

When the device is in a low RAM state, when we go to pull a cached
process out to use for some background operation, we can now kill
the current process if we consider its size to be too large.

Note that the current implementation for killing processes is to
just use the same killUnneededProcessLocked() method that we already
have for other things like too many cached processes.  This is a
little wrong here, though, because in this case we are at the
point where the caller is actually looking for a process to use.
This current code is not actually removing or cleaning up the
process, so we still need to return the now killed ProcessRecord
and let things fall out from there, which typically means the caller
trying to make an IPC on it and failing and falling into its "oh
no the process died unexpectedly" path.  All code using this
*should* be able to handle this correctly, anyway, since processes
really can be killed at any time.

At some point we may to make this implementation cleaner, where it
actually tears down the process right in the call and returns a
null ProcessRecord.  That is very dangerous however (we'd need to
go through all paths into this to make sure they are going to be
okay with process state changing on them like that), and I'm not
sure it is really worthwhile.  This intention is that killing
processes like this is unusual, due to processes being too large,
and anyway as I wrote all of our incoming code paths must already
be able to handle the process being killed at this point and one
could argue this is just another way to excercise those code paths.
Really, the main negative to this is that we will often have spam
in the log with exceptions about processes dying unexpectedly.
If that is the only issue, we could just add some conditions to
quiet that up at in this case.

We don't want to compute the size of the process each time we try
to evaluate it here (it takes 10s or ms to do so), so there is now
a new field associated with the process to give us the last pss
size we computed for it while it was in the cached state.

To be able to have better cached pss data when we now need it, the
timing for computing process pss has been tuned to use a much
shorter delay for the situations when the process has first switch
into a new state.  This may result in us having a fair amount more
pss data overall, which is good, as long as it doesn't cause us to
be computing pss excessively and burning cpu.

Procstats now also has new state to keep track of the number of
times each process has been killed by this new system, along with
the min, avg, max pss of all the times it has happened.  This has
slightly changed the checkin format to include this additional data
at the end of pkgkills/prockills lines.

Other changes here:

- Fixed a problem where GPU RAM was not being seen when dumping
  the full RAM details of a process.  This was because in that
  case the system would ask the process to compute its own MemInfo,
  which it returned, but the process doesn't have permission to
  access the files containing the GPU RAM data.  So now the system
  always computes the MemInfo and hands it to the app.

- Improved broadcast delays to not apply the delay if the next receiver
  of the broadcast is going to run in the same process as the last
  one.  A situation I was seeing was an application that had two
  receivers, one of which started a service; we are better off letting
  the second receiver run while the service is running.

- Changed the alarm manager's TIME_TICK broadcast to be a foreground
  broadcast.  This really should have been anyway (it is supposed to
  go out even minute, on the minute, very accurately, for UI elements
  to update), and is even more important now that we are doing more
  things to delay background broadcasts.

- Reworked how we maintain the LRU process list.  It is now divided
  into the two parts, the top always containing the processes holding
  activities.  This better matches the semantics we want (always try
  to keep those around modulated by the LRU order we interleave with
  other cached processes), and we now know whether a process is being
  moved on the LRU list because of an activity operation so we can
  only change the order of these activity processes when user operations
  happen.  Further, this just makes that common code path a lot simpler
  and gets rid of all the old complexity that doesn't make sense any
  more.

Change-Id: I04933ec3931b96db70b2b6ac109c071698e124eb
2013-09-19 14:35:53 -07:00
Craig Mautner
e8a9422495 Merge "Return tasks in correct order." into klp-dev 2013-09-19 20:03:24 +00:00