Commit Graph

1855 Commits

Author SHA1 Message Date
Dianne Hackborn
fc68ed14ff am f1ebd1bd: am 5d122d96: Better documentation on permission checking in ContentProvider.call().
* commit 'f1ebd1bd6799f4e2c5734ab372a9c78cd724b27e':
  Better documentation on permission checking in ContentProvider.call().
2013-03-14 02:34:21 +00: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
dc37c5f2e3 am 0c42b580: am 53149acf: Merge "Implement limited shared libraries in apks." into jb-mr2-dev
* commit '0c42b58041dc0ede9865335fa48637fb6b677cd3':
  Implement limited shared libraries in apks.
2013-03-12 23:10:38 +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
345fc4cc92 am 1b48ecf8: am f2afddb5: Merge "Handle corrupt RegisteredServicesCache XML." into jb-mr2-dev
* commit '1b48ecf89a13a104820d5ccf52ba7f5dd622d3a6':
  Handle corrupt RegisteredServicesCache XML.
2013-03-11 20:31:51 +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
fb61c5368f am 387f446e: am 5043dc20: am bf8a663c: am 3f7a4990: Merge "Improve the Resource.getQuantityString/getQuantityText documentation."
* commit '387f446eb98f0d7b932257b1cd68d89996197478':
  Improve the Resource.getQuantityString/getQuantityText documentation.
2013-03-08 22:54:37 +00: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
99438af892 am 73a3754c: am 4861966c: Merge "ArrayUtils.indexOf(), containsAll() with tests." into jb-mr2-dev
* commit '73a3754c6766b7220878983317b3d56ce7fc6e58':
  ArrayUtils.indexOf(), containsAll() with tests.
2013-03-07 00:45:14 +00:00
Jeff Sharkey
94c91dca55 ArrayUtils.indexOf(), containsAll() with tests.
Change-Id: I040164d4e45126e4a6c1df54bd114f47951da560
2013-03-06 16:28:36 -08:00
Amith Yamasani
adb8e146a5 am 3eb3774f: am 67df64b3: Shared accounts and sharing of apps
* commit '3eb3774f8e54a6f43dcf4f27e1b7a62676791ff6':
  Shared accounts and sharing of apps
2013-03-06 18:37:32 +00: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
8d628f0c69 am bc086862: Declare VOICE_ASSIST intent
* commit 'bc086862e216bbe8ffc2dfb68f09a872505d9d48':
  Declare VOICE_ASSIST intent
2013-03-01 17:21:32 +00:00
Bjorn Bringert
bc086862e2 Declare VOICE_ASSIST intent
Bug: 8289964
Change-Id: I241b5166a98a7a462691f0169bf1b6f4fe7b2e0f
2013-03-01 12:59:24 +00:00
Jeff Sharkey
ce43e009e6 am f5e04717: Merge "Tighten enforcement of file modes." into jb-mr2-dev
* commit 'f5e0471703d73a1285601928b790cdf0ab028fa5':
  Tighten enforcement of file modes.
2013-03-01 00:49:33 +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
bf2798b387 am 9ad66541: Merge "New ContentProvider initialization for testing." into jb-mr2-dev
* commit '9ad665417713398524d425f63b0d6fa751244237':
  New ContentProvider initialization for testing.
2013-02-27 23:22:12 +00: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
2223e52a21 am d0d209ed: Merge "App ops: turn off content provider ops when running under test." into jb-mr2-dev
* commit 'd0d209ed4d6280b6e1203eebe823f04f9db766c0':
  App ops: turn off content provider ops when running under test.
2013-02-26 21:48:53 +00: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
91adc04591 am 305dbea8: Merge "App ops: adding operations for reading/writing clipboard." into jb-mr2-dev
* commit '305dbea8e39608b61810637944b6ffbbe6c07d2f':
  App ops: adding operations for reading/writing clipboard.
2013-02-26 18:20:55 +00:00
Dianne Hackborn
efcc1a23a1 App ops: adding operations for reading/writing clipboard.
Change-Id: Ic4cade153618fe86954754a3b3edde64a52a0a9c
2013-02-25 18:02:35 -08:00
Geremy Condra
61f542ab95 Merge "Added the KeySetManager." 2013-02-25 21:42:12 +00:00
Geremy Condra
f1bcca8215 Added the KeySetManager.
Bug: 7554291
Change-Id: Ic693a544f1e2cab20f6540b3fc4ff673e35bd2c6
2013-02-20 20:06:29 -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