Commit Graph

1843 Commits

Author SHA1 Message Date
Scott Kennedy
da2223f897 Remove a method
It was only being called in one location, and the parameter was being
ignored.

Change-Id: Ia853dd8d3898ac3e4c4b2fb3a51d103844b57ca1
2013-03-14 10:47:10 -07:00
Dianne Hackborn
5d122d96a5 Better documentation on permission checking in ContentProvider.call().
Change-Id: I4a85fd17362c2a32e2b1365fcc07ef0336521616
2013-03-13 15:48:12 -07:00
Bjorn Bringert
133e2db873 Merge "Hide VOICE_ASSIST intent DO NOT MERGE" into jb-mr2-dev 2013-03-13 13:28:01 +00:00
Dianne Hackborn
c895be7bc6 Implement limited shared libraries in apks.
You can now declare shared libraries in apks that are
on the system image.  This is like the existing mechanism
of using raw jar files as shared libraries, but since they
are contained in an apk the library can actually be updated
from the Play Store.  And this even (mostly) works.

There are some deliberate limitations on this feature.  A
new shared library *must* be declared by an apk on the system
image.  Installing an update to a system image apk does not
allow you to add new shared libraries; they must be defined
by everything on the base system image.  This allows us to
get rid of a lot of ugly edge cases (shared libraries that were
there disappearing after an update is uninstalled for example)
and give some brakes on apps that happen to be pre-installed
on devices from being able to throw in new shared libraries
after the fact.

In working on this, I ran into a recently introduced bug where
uninstalling updated to system apps would fail.  This was done
to allow for the new restricted users that don't have all
system apps, but conflicts with the existing semantics for
uninstalling system apps.  To fix this I added a new uninstall
flag that lets you switch on the new mode if desired.

Also to implement the desired logic for limitations on declaring
new shared libraries in app updates, I needed to slightly tweak
the initial boot to keep the Package object for hidden system
packages associated with their PackageSetting, so we can look at
it to determine which shared libraries are allowed.  I think
this is probably more right than it was before -- we already
need to parse the package anyway, so we have it, and when you
install an update to a system app we are in this same state
until you reboot anyway.

And having this fixed also allowed me to fix another bug where
we wouldn't grant a new permission to an updated app if its
system image version is updated to request the permission but
its version is still older than whatever is currently installed
as an update.  So that's good.

Also add new sample code showing the implementation of an apk
shared library and a client app using it.

Change-Id: I8ccca8f3c3bffd036c5968e22bd7f8a73e69be22
2013-03-12 12:51:38 -07:00
Bjorn Bringert
964e7d2549 Hide VOICE_ASSIST intent DO NOT MERGE
Bug: 8289964
Change-Id: I49874f379647ff4e85402a298b4181923212a0aa
2013-03-12 19:35:57 +00:00
Jeff Sharkey
f2afddb57d Merge "Handle corrupt RegisteredServicesCache XML." into jb-mr2-dev 2013-03-11 20:25:48 +00:00
Jeff Sharkey
293ad6c674 Handle corrupt RegisteredServicesCache XML.
Avoid getting stuck in infinite loop.

Bug: 8360183
Change-Id: I81728dcfbc35b456c9166cf5c5175d0a376df56f
2013-03-11 13:22:29 -07:00
Elliott Hughes
5043dc2063 am bf8a663c: am 3f7a4990: Merge "Improve the Resource.getQuantityString/getQuantityText documentation."
* commit 'bf8a663c53454f8b8cd7e07344316981022efa10':
  Improve the Resource.getQuantityString/getQuantityText documentation.
2013-03-08 14:44:40 -08:00
Elliott Hughes
bf8a663c53 am 3f7a4990: Merge "Improve the Resource.getQuantityString/getQuantityText documentation."
* commit '3f7a49904cef7ea14808590b63b115a4381537a1':
  Improve the Resource.getQuantityString/getQuantityText documentation.
2013-03-08 13:59:59 -08:00
Elliott Hughes
95d5ab30f2 Improve the Resource.getQuantityString/getQuantityText documentation.
Natural languages differ so much and in such odd ways that you can't
use getQuantityString as an "if" statement. It's really just for grammaticality.
This is explained well in
http://developer.android.com/guide/topics/resources/string-resource.html#Plurals
but we need to make more of an effort to motivate people to read that, and to
at least get the most important point across if they don't read it.

Change-Id: I549b9f3563462c45f2dea34c558185e0714127cd
2013-03-08 11:26:57 -08:00
Jeff Sharkey
94c91dca55 ArrayUtils.indexOf(), containsAll() with tests.
Change-Id: I040164d4e45126e4a6c1df54bd114f47951da560
2013-03-06 16:28:36 -08:00
Amith Yamasani
67df64b3a4 Shared accounts and sharing of apps
API and preliminary implementation for sharing primary user accounts with a secondary user.
AbstractAccountAuthenticator has new methods to retrieve and apply a bundle of credentials
to clone an account from the primary to a restricted secondary user. The AccountManagerService
initiates the account clone when it starts up the user and detects that the user has
a shared account registered that hasn't been converted to a real account.

AccountManager also has new hidden APIs to add/remove/get shared accounts. There might be
further improvements to this API to make shared accounts hidden/visible to select apps.

AccountManagerService has a new table to store the shared account information.

Added ability in PackageManager to install and uninstall packages for a secondary user. This
is required when the primary user selects a few apps to share with a restricted user.

Remove shared accounts from secondary users when primary user removes the account.

Change-Id: I9378ed0d8c1cc66baf150a4bec0ede56f6f8b06b
2013-03-06 09:49:44 -08:00
Jeff Sharkey
237940a092 am 2048fbb1: am c807070c: am 1e5e3748: am 67f29573: am bb2aa63b: am a2e929e1: Tighten enforcement of file modes.
* commit '2048fbb1106a639c6b66298b94ab98eb4c650542':
  Tighten enforcement of file modes.
2013-03-01 17:31:54 -08:00
Jeff Sharkey
2048fbb110 am c807070c: am 1e5e3748: am 67f29573: am bb2aa63b: am a2e929e1: Tighten enforcement of file modes.
* commit 'c807070cb54228f1039cd0a3f2fe14efbe46df3e':
  Tighten enforcement of file modes.
2013-03-01 17:30:45 -08:00
Jeff Sharkey
1e5e3748d4 am 67f29573: am bb2aa63b: am a2e929e1: Tighten enforcement of file modes.
* commit '67f2957331a63474879f68bf1a8d17b60b2188cd':
  Tighten enforcement of file modes.
2013-03-01 17:26:07 -08:00
Jeff Sharkey
67f2957331 am bb2aa63b: am a2e929e1: Tighten enforcement of file modes.
* commit 'bb2aa63be4a9328403a4daa2f93b42a4a7b0b65d':
  Tighten enforcement of file modes.
2013-03-01 17:23:40 -08:00
Jeff Sharkey
bb2aa63be4 am a2e929e1: Tighten enforcement of file modes.
* commit 'a2e929e1df62947b7967258f21fd05b27a571878':
  Tighten enforcement of file modes.
2013-03-01 17:20:51 -08:00
Jeff Sharkey
a2e929e1df Tighten enforcement of file modes.
Bug: 8275867
Change-Id: I4da14f2dd0049aca69636999696c1f3c02b3b792
2013-03-01 16:17:09 -08:00
Bjorn Bringert
bc086862e2 Declare VOICE_ASSIST intent
Bug: 8289964
Change-Id: I241b5166a98a7a462691f0169bf1b6f4fe7b2e0f
2013-03-01 12:59:24 +00:00
Jeff Sharkey
f5e0471703 Merge "Tighten enforcement of file modes." into jb-mr2-dev 2013-03-01 00:44:41 +00:00
Jeff Sharkey
ba761979ee Tighten enforcement of file modes.
Bug: 8275867
Change-Id: I4da14f2dd0049aca69636999696c1f3c02b3b792
2013-02-28 15:57:36 -08:00
Dianne Hackborn
334d9aebc2 New ContentProvider initialization for testing.
Using this turns off app ops checks.

Change-Id: If29d4ca2fe9ddf1a1663d3a824b2f0afe7375862
2013-02-26 16:16:14 -08:00
Dianne Hackborn
7e6f976c87 App ops: turn off content provider ops when running under test.
Change-Id: I3a5084d195de29122b2f5f2a13b5d4f92f22fa92
2013-02-26 13:35:11 -08:00
Dianne Hackborn
efcc1a23a1 App ops: adding operations for reading/writing clipboard.
Change-Id: Ic4cade153618fe86954754a3b3edde64a52a0a9c
2013-02-25 18:02:35 -08:00
Jim Miller
ab8e936e85 Merge "Add explicit userId to AppWidget binder calls" 2013-02-21 00:00:49 +00:00
Jim Miller
a75a883fe9 Add explicit userId to AppWidget binder calls
Keyguard currently relies on being in the system process to grab the
given user's widgets.  When we split keyguard into a new process,
it will need to have access to user-specific info to instantiate a
specific user's widgets.  In order to accomplish this, we add an
explicit userid to each binder call as well as new permission
check to allow keyguard access.

This also fixes a potential race condition of having an incorrect user id
due to an async call to change the user.  Every binder call now has a specific
user id. The user id is either the calling process user's id or an explicit
one passed by applications like keyguard. It is created once when an
AppWidgetManager is instantiated and remains for the lifetime of the object.

Fixed bug where widgets sometimes didn't show up for secondary users.

Moved permission check in AppWidgetService into getImplForUser()

Refactored to use userid from context associated AppWidgetManager instance.

Clean up AppWidgetHost to use userId from Context.

Remove redundant userId check in checkPermission since it's handled by
ActivityManager.handleIncomingUser()

Removed redundant userid check.

Upload after rebase...

Change-Id: Iae3e20f2b342c323bb58768b3d22051510f8268b
2013-02-20 15:41:14 -08:00
Dianne Hackborn
c49f47220a Merge "Fix issue #8228463: contradicting public documentation on what..." 2013-02-20 23:13:25 +00:00
Dianne Hackborn
a53ee35754 Fix issue #8228463: contradicting public documentation on what...
...Intents match an IntentFilter that has no action specified

And various other doc improvements.

Change-Id: I6d881c8aed56c552e36d5db5df4f74c6aa718da7
2013-02-20 15:05:39 -08:00
Michael Wright
1fd2ed58da Merge "Add brightness dialog to SystemUI" 2013-02-20 23:03:18 +00:00
Michael Wright
0087a14d4b Add brightness dialog to SystemUI
Change-Id: If31406c9144bb2583876f08dd54b259d1dfa3601
2013-02-20 14:39:03 -08:00
Svetoslav
b3038ec7cf Adding idle maintenance service.
It is beneficial that there is a mechanism on the platform
to notify applications whether it is safe to perform somehow
expensive operations while the user is not using the device.
Thus, user experience will not be degraded. An example is
discarding of unused blocks on a mounted file system instead
of doing this on every write operation.

bug:8056794

Change-Id: I708bad9d3ce6c8f1d5a1c05c0abf46f81a3d464b
2013-02-15 11:04:11 -08:00
Dianne Hackborn
681533e000 Merge "Fix issue #8176917: Stabillity : Native Crash :" 2013-02-12 00:44:26 +00:00
Dianne Hackborn
e5b50a65ad Fix issue #8176917: Stabillity : Native Crash :
/system/lib/libandroidfw.so

Change-Id: I235470fac7ad0f5a5d3432006f4dfa69620e30d8
2013-02-11 16:18:42 -08:00
Amith Yamasani
636c61ed41 Merge "Starting point for User Restrictions API" 2013-02-11 23:17:07 +00:00
Dianne Hackborn
50707cc820 Fix issue #8133857: Tracking ANR in Gallery
Reworking the locking in resources so that we never hold the
state lock while calling in to potential long running operations.
This means the mTmpValue can no longer be final (since we need
to use it while the lock isn't held), so a new field needs to
be added as the lock and everything that touches mTmpValue must
deal with it being null, restoring the value in there when
possible, etc.

Change-Id: Ie5ffd0f66e5f2d0e869a62d72e7a55b1c74fe872
2013-02-08 17:18:03 -08:00
Amith Yamasani
e4cf73437a Starting point for User Restrictions API
Restrictions saved as key/value pairs, mostly booleans right now
but might be expanded to other types later.

Save and restore restrictions in the user manager service.
Enforce some of the restrictions at the framework level. Some
are enforced (also) at the app level, such as in Settings.

Change-Id: Id11ffe129cb6a177e094edf79635727388c26f40
2013-02-08 15:52:47 -08:00
Alon Albert
92afa5aa3e Merge "COnvert sync error to int" 2013-02-07 22:05:08 +00:00
Alon Albert
5c113faba6 COnvert sync error to int
Bug: 8152259
Change-Id: I99fc99f70796c70ec0566c40ba350e10c36b90b7
2013-02-07 12:01:10 -08:00
Dianne Hackborn
961321fe4e App ops: add op for writing settings.
Also fix a build.

And fix a bug that I think was introduced in the multi-user work
that removed the permission check for writing to settings...!

Change-Id: I5945682faa789ffc78fd3546c0df7d03693f106d
2013-02-05 17:22:41 -08:00
Dianne Hackborn
f51f61269a App ops: new operations for SMS.
Implementation required a new framework feature
to associate an app op with a broadcast.

Change-Id: I4ff41a52f7ad4ee8fd80cbf7b394f04d6c4315b3
2013-02-05 11:56:12 -08:00
Kenny Root
35e832730c am 3789b2fb: am ace72f6a: Merge "Function uri.getAuthority is called twice. Minor doc corrections."
# By Yury Zhauniarovich
# Via Gerrit Code Review (2) and Android Git Automerger (1)
* commit '3789b2fb823b7632e410c0191ddf77dc1e875196':
  Function uri.getAuthority is called twice. Minor doc corrections.
2013-02-04 17:19:31 -08:00
Kenny Root
3789b2fb82 am ace72f6a: Merge "Function uri.getAuthority is called twice. Minor doc corrections."
# By Yury Zhauniarovich
# Via Gerrit Code Review
* commit 'ace72f6a37ffc232172346b3385494ef10195583':
  Function uri.getAuthority is called twice. Minor doc corrections.
2013-02-04 11:44:53 -08:00
Yury Zhauniarovich
f9c5176a51 Function uri.getAuthority is called twice. Minor doc corrections.
Function uri.getAuthority was called twice in methods acquireProvider
and acquireExistingProvider was called twice although a parameter
representing the value had existed. The second call to the function is
changed to the parameter. The parameter's modifier changed to final.
Minor corrections in function descriptions in the file.

Signed-off-by: Yury Zhauniarovich <y.zhalnerovich@gmail.com>
Change-Id: Id003aa38c17d644357873c41a8f5ec455e46a4b7
2013-02-03 16:14:11 +00:00
Dianne Hackborn
d7960d19c1 Improve revoking access to content providers.
Providers can now hook into the revoked query and insert
calls, and the default implementation of query is a little better.

Change-Id: I29592a579aaf4a98686c6cf43e57f73275c58922
2013-01-29 18:55:48 -08:00
Dianne Hackborn
e8ae8b8982 Merge "Add GET_CONTENT protocol for allowing multiple selection." 2013-01-29 23:56:20 +00:00
Dianne Hackborn
7f54ffd029 Merge "Improve configuration of default preferred apps." 2013-01-29 23:43:20 +00:00
Dianne Hackborn
8a2ed1d7c0 Improve configuration of default preferred apps.
The file that defines default preferred apps is now more
robust.  It is no longer a raw dump of the package
manager settings, but instead a more general list of a
target activity and filter.  When reading it, the remaining
information (match value, set of potential matches) is
determined dynamically.

Change-Id: I0edc6e0d2ed3dd2a6e2238992f18f7fc1f51d8d4
2013-01-29 15:18:29 -08:00
Jeff Sharkey
e564a325be Use the resolved Context in ContentResolver.
Change-Id: If62b34a9f6d6305657a02d3f807a24eee63aecf6
2013-01-28 15:52:43 -08:00
Dianne Hackborn
fdb3f094ca Add GET_CONTENT protocol for allowing multiple selection.
Change-Id: I4c14d32112523d7ab603b2a4e374849dd1c3eff6
2013-01-28 15:10:48 -08:00
Dianne Hackborn
5e45ee6752 App ops: you can now turn off operations.
Also add new ops for calendar and wi-fi scans, finish
implementing rejection of content provider calls, fix
issues with rejecting location calls, fix bug in the
new pm call to retrieve apps with permissions.

Change-Id: I29d9f8600bfbbf6561abf6d491907e2bbf6af417
2013-01-25 11:25:48 -08:00