Commit Graph

255 Commits

Author SHA1 Message Date
Kenny Root
7415737326 am 12cff6f6: am 10a25c0a: Merge "Remove keystore entries when app data cleared" into jb-mr2-dev
* commit '12cff6f6289cb6bb06b716e75e7776099343323a':
  Remove keystore entries when app data cleared
2013-04-12 12:00:59 -07:00
Kenny Root
6fd1c85d7f Remove keystore entries when app data cleared
When an application's user data is cleared, the keystore entries need to
be cleared as well. Previously we were only clearing entries when the
application was uninstalled for all users. Now we cover the case of
multiuser as well.

Bug: 8566369
Change-Id: I201c92d0893f0d18e87970dcd59ef6cd904584dc
2013-04-12 10:09:02 -07:00
Christopher Tate
e775cee176 am 04f5c8cb: am 790518a1: Merge "Implicitly enable system apps when updates installed" into jb-mr2-dev
* commit '04f5c8cb95f1f4f09bc0feacab36088066e58afb':
  Implicitly enable system apps when updates installed
2013-04-10 17:08:42 -07:00
Christopher Tate
790518a1a2 Merge "Implicitly enable system apps when updates installed" into jb-mr2-dev 2013-04-10 23:58:37 +00:00
Christopher Tate
32a019d438 Implicitly enable system apps when updates installed
If someone explicitly installs an update to a system-bundled package,
we infer that this means they actually want to use the new code.

Bug 7467302

Change-Id: If2dc6f764bafbb3a5c94cbdd32273c030fd784b9
2013-04-09 17:11:55 -07:00
Dianne Hackborn
875422153d resolved conflicts for merge of e9b4ee69 to master
Change-Id: Id752ae94f63a66b2ec200f68c73bf0d7b04b249f
2013-04-09 11:56:06 -07:00
Dianne Hackborn
558a3c1b7b Merge "Kill processes when permissions are revoked." into jb-mr2-dev 2013-04-09 17:38:00 +00:00
Dianne Hackborn
f1b782427f Kill processes when permissions are revoked.
Some permissions are associated with gids, so we need to
kill any running processes if their permission is revoked.
We will do this for any permission being revoked, since
the association between gids and permissions can change
over time.

Change-Id: Ieb7408e032539c4f21eb089d65a7a7e6c289f010
2013-04-08 22:28:59 -07:00
Kenny Root
c21e2cb672 am b3be67ce: am 0eee410e: Merge "Check outInfo is not null" into jb-mr2-dev
* commit 'b3be67ce34966dfccfccf4918ee5c93c4971a6d0':
  Check outInfo is not null
2013-04-08 17:05:50 -07:00
Kenny Root
3b9933d0c2 Check outInfo is not null
Only call keystore if outInfo is not null

Bug: 8568820
Change-Id: I24ab625ad02b8510da489911064453de642b6748
2013-04-08 16:06:24 -07:00
Ben Gruver
5e20733107 resolved conflicts for merge of 2ab72e1f to master
Change-Id: I752332dfb1a2f15bac22d3f1a457ae1ef20cf240
2013-04-03 17:46:19 -07:00
Ben Gruver
8c3ee9d50a Merge "Initial implementation of IntentFirewall functionality" into jb-mr2-dev 2013-04-03 23:36:22 +00:00
Nick Kralevich
997af33eb1 am 26bb9c95: am 0d17aaa5: Merge "Grant optional permissions by default for system apps." into jb-mr2-dev
* commit '26bb9c955158893f946bed727124d3dbd3cfd0a7':
  Grant optional permissions by default for system apps.
2013-04-03 16:33:49 -07:00
Nick Kralevich
0d17aaa543 Merge "Grant optional permissions by default for system apps." into jb-mr2-dev 2013-04-03 23:26:28 +00:00
Nick Kralevich
60792852c8 Grant optional permissions by default for system apps.
For pre-installed system apps, automatically grant all optional
permissions.

Change-Id: I99bb320a0bbaa9873baeb63655556fe0fae6f011
2013-04-03 16:17:06 -07:00
Kenny Root
2aeb228989 am 6812059b: am d72317ab: Remove keystore entries when package removed
* commit '6812059b2d4aecb732ce3c94c58f2494ddc4ff6a':
  Remove keystore entries when package removed
2013-04-03 12:40:37 -07:00
Kenny Root
d72317abd7 Remove keystore entries when package removed
Add a hook into PackageManagerService so that when app IDs are
completely removed, we erase all entries from keystore for those UIDs
that have gone away.

(cherry picked from commit 95e3ee3971)

Bug: 3020069
Change-Id: I374258ccc103f8cb3e238f2bf0d1afda0659db94
2013-04-03 11:32:52 -07:00
Ben Gruver
4efe9403af Initial implementation of IntentFirewall functionality
This has the full filter functionality, but is currently only
able to block Activity intents. Logging intents, or blocking
service/broadcast intents is not yet implemented.

Change-Id: Ied3d8dedf982e17bcbdff3e328eeb87477954df7
2013-04-02 21:18:41 -07:00
Nick Kralevich
bad8225336 am d2cc888c: am 55cfcd75: Merge "doSignaturePermission -> grantSignaturePermission" into jb-mr2-dev
* commit 'd2cc888cb9d5dbf87146ccd8fe02ea05121c02d8':
  doSignaturePermission -> grantSignaturePermission
2013-04-02 12:51:56 -07:00
Nick Kralevich
f486361607 am c77d3b16: am f667c8d3: Merge "grantPermissionsLPw: introduce isNewPlatformPermissionForPackage" into jb-mr2-dev
* commit 'c77d3b16d7f1fe6cb3262eeabbc56fc3275a4f4f':
  grantPermissionsLPw: introduce isNewPlatformPermissionForPackage
2013-04-02 12:51:53 -07:00
Nick Kralevich
2a9abe9ef3 am 0f67b255: am 5b7d1481: Merge "grantPermissionsLPw: get rid of a level of curly braces" into jb-mr2-dev
* commit '0f67b2550c020d9d12b13018712b3165b2c47029':
  grantPermissionsLPw: get rid of a level of curly braces
2013-04-02 12:48:05 -07:00
Nick Kralevich
cfa35cbc0c am b590b80e: am bb7ba4ae: Merge "grantPermissionsLPw: introduce doSignaturePermission" into jb-mr2-dev
* commit 'b590b80e36fd8e54c4d48f0c17af8709cbcf174d':
  grantPermissionsLPw: introduce doSignaturePermission
2013-04-02 12:48:03 -07:00
Nick Kralevich
55cfcd7569 Merge "doSignaturePermission -> grantSignaturePermission" into jb-mr2-dev 2013-04-02 19:44:02 +00:00
Nick Kralevich
f667c8d327 Merge "grantPermissionsLPw: introduce isNewPlatformPermissionForPackage" into jb-mr2-dev 2013-04-02 19:43:09 +00:00
Nick Kralevich
5b7d148193 Merge "grantPermissionsLPw: get rid of a level of curly braces" into jb-mr2-dev 2013-04-02 19:41:46 +00:00
Nick Kralevich
bb7ba4ae67 Merge "grantPermissionsLPw: introduce doSignaturePermission" into jb-mr2-dev 2013-04-02 19:40:23 +00:00
Dianne Hackborn
a05a368613 am 69fe4069: am 006c6338: Merge "Fix bug in initializing preferred activities." into jb-mr2-dev
* commit '69fe40692973bf480019d71dea85d01d24eb7a68':
  Fix bug in initializing preferred activities.
2013-04-02 12:11:54 -07:00
Nick Kralevich
94b8c93789 doSignaturePermission -> grantSignaturePermission
Change-Id: Iee3c24c8ce5ebbd0b0e8cf7b0e308f998fc6eaf9
2013-04-02 09:38:00 -07:00
Nick Kralevich
3337dbf707 grantPermissionsLPw: introduce isNewPlatformPermissionForPackage
Make grantPermissionsLPw by refactoring some code into a new
function, isNewPlatformPermissionForPackage.

No functional changes.

Change-Id: I467dacfe1fcf7e77cef4cb6df54536eeaafd9064
2013-04-02 09:38:00 -07:00
Nick Kralevich
daae541ac3 grantPermissionsLPw: get rid of a level of curly braces
We can get rid of an indention level by modifying an if/else
block slightly.

No functional changes.

Change-Id: I0404093ea9ebe7729417d825afb6e97e158ad23e
2013-04-02 09:38:00 -07:00
Nick Kralevich
35bee33d6f grantPermissionsLPw: introduce doSignaturePermission
Make grantPermissionsLPw smaller by introducing a new doSignaturePermission
function.

Just a refactoring. No functional code changes.

Change-Id: Ia967fd93e3f7cf3e48fcd13be0b04994b76d36f3
2013-04-02 09:38:00 -07:00
Dianne Hackborn
4d491a605e Fix bug in initializing preferred activities.
Now that we are smarter about the initialization, we need
to do this after all packages are scanned.

Change-Id: I598f5ef84dcc83779bbff29e4c92136c63fb32de
2013-04-01 18:10:51 -07:00
Dianne Hackborn
d734b4f285 am 6b8e7b35: am bf20aa76: Merge "Keep track of who has disabled applications." into jb-mr2-dev
* commit '6b8e7b35ef763d29a30c87a5a95ef941d39a8ee9':
  Keep track of who has disabled applications.
2013-03-27 16:40:49 -07:00
Dianne Hackborn
3fa3c28a35 Keep track of who has disabled applications.
Change-Id: I2640d3dc2200b589e2beb42a43cc93efd090f06e
2013-03-27 12:01:52 -07:00
Amith Yamasani
a1535223fe am f3dc9f0a: am df5e9fe1: Merge "Device Owner, a special kind of device admin" into jb-mr2-dev
* commit 'f3dc9f0aa91d2785b715f251b144487ec1b57ecc':
  Device Owner, a special kind of device admin
2013-03-26 15:31:33 -07:00
Amith Yamasani
df5e9fe181 Merge "Device Owner, a special kind of device admin" into jb-mr2-dev 2013-03-26 22:27:13 +00:00
Amith Yamasani
71e6c697e5 Device Owner, a special kind of device admin
A Device Owner cannot be uninstalled and is available to all users. It must
be registered before the device_provisioned flag is set.

Device admins can be disabled until used, but visible to device policy
manager, so that users wont be bothered with update requests.

Opened up a few related APIs for use by a system-installed Device Owner.

Change-Id: I847b5fe68c0f724863f778a67602b5bddc79d8e5
2013-03-26 15:09:08 -07:00
Geremy Condra
98157242e2 am d6c1394d: am 51163e3b: Merge "Add seinfo parsing to PackageManagerService." into jb-mr2-dev
* commit 'd6c1394dd0046944e66d391ff0e099fb5ac57751':
  Add seinfo parsing to PackageManagerService.
2013-03-26 01:47:03 +00:00
Robert Craig
0f40dc923c Add seinfo parsing to PackageManagerService.
This patch set allows the PMS to parse the
mac_permissions.xml file which contains the
seinfo values. Each package that is installed
on the device will be assigned an seinfo value
based on policy. This seinfo value will help label
the app process and data directory.  Modifications
include adjustments to ApplicationInfo.java
to store the seinfo tag per package as well as
adjustments to installd to communicate the seinfo
tag to libselinux.

Change-Id: I61ad1ea12fb6a9a6d0b108ec163bc4bf4c954b58
Signed-off-by: rpcraig <rpcraig@tycho.ncsc.mil>
2013-03-25 17:30:08 -07:00
Nick Kralevich
56f83b277d am d7afbeb5: am f00529d9: Merge "PackageManagerService: update grantPermission / revokePermission" into jb-mr2-dev
* commit 'd7afbeb52a289b98095872489928783fa008d424':
  PackageManagerService: update grantPermission / revokePermission
2013-03-25 18:19:42 +00:00
Nick Kralevich
c498614414 PackageManagerService: update grantPermission / revokePermission
Currently, grantPermission / revokePermission only handles development
permissions. This change extends these two functions to handle normal
and dangerous permissions.

A normal / dangerous permission can modified if it is marked as
optional (android:required="false") using the "am grant" / "am revoke"
commands.

Currently, this change is a no-op. The package parser code
does not currently honor <uses-permission android:required="false"> in
the application's manifest, and assumes a permission is always required.

This change sets the ground for future optional permissions work.

Change-Id: I34f02ffd714e8a9a37b9f87df89cef915b1b6780
2013-03-25 11:01:20 -07:00
Nick Kralevich
b97e5eb05c am f5eaf95b: am 515c20be: Merge "PackageManagerService: honor requestedPermissionsRequired" into jb-mr2-dev
* commit 'f5eaf95bc5a3240b315376a284e6ee4a60cc5145':
  PackageManagerService: honor requestedPermissionsRequired
2013-03-19 15:50:21 +00:00
Nick Kralevich
1cd6c6ecdf PackageManagerService: honor requestedPermissionsRequired
Don't automatically grant all normal/dangerous permissions. Instead,
check the value of requestedPermissionsRequired to see if it's required.

If the permission is not required, then only grant it if the permission
was previously granted to the application.

Change-Id: I86b1fae530c006d353f9fa22137598bc88253805
2013-03-18 13:59:04 -07: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
Jeff Sharkey
07cd3f3f01 am 768c5c4d: am 18dd9b94: Merge "Use enabled/enabledSetting from PackageParser." into jb-mr2-dev
* commit '768c5c4d9d736c55d7ef580142d602850f47a098':
  Use enabled/enabledSetting from PackageParser.
2013-03-06 23:32:31 +00:00
Jeff Sharkey
94d7ddb4b5 Use enabled/enabledSetting from PackageParser.
PackageParser.updateApplicationInfo() has already interpreted the
various COMPONENT_ENABLED flags for us, no need to clobber them.

Bug: 8331767
Change-Id: If1363c5651a2f0326ee60e92517cfc0e6f256699
2013-03-06 15:10:57 -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
Geremy Condra
61f542ab95 Merge "Added the KeySetManager." 2013-02-25 21:42:12 +00:00