Commit Graph

3437 Commits

Author SHA1 Message Date
Svet Ganov
5dc71cb2dd am ffb43184: am 3d8e949a: am 9088c083: am 12b05ec2: am 75f6b94a: Merge "Grant default permissions to the setup app robustly." into mnc-dev
* commit 'ffb4318447f7741b4901dd38e3f6d97c94794b42':
  Grant default permissions to the setup app robustly.
2015-07-15 23:32:14 +00:00
Svet Ganov
75f6b94a5d Merge "Grant default permissions to the setup app robustly." into mnc-dev 2015-07-15 21:58:50 +00:00
Svet Ganov
50a8bf4da0 Grant default permissions to the setup app robustly.
There is a zoo of components that handle the home intent and
have different priority. There is no reliable way to distinguish
the setup app from the other apps that handle home as some of
them have lower priority than the setup app and some higher.
This change adds a dedicated category to recognize the default
setup app.

Uncommented the code that grants accounts permissions as the
get_accounts permission is now a runtime permission and can be
granted.

bug:22471024
bug:22501463

Change-Id: I41726751fa2567cbcd7d09c7acfa7615b8aba577
2015-07-15 14:46:23 -07:00
Dianne Hackborn
e0d96ce96c am 808dd5cc: am 4753b5bc: am 4f73990a: am aa3694f2: am f1f8b9cc: Merge "Fix issue #21626564: MMS should be receivied while Dozing" into mnc-dev
* commit '808dd5cc8af3e26d12c1b5fe80663eb306cc0c20':
  Fix issue #21626564: MMS should be receivied while Dozing
2015-07-15 02:37:04 +00:00
Fyodor Kupolov
b5143ecfee am 1fa2a088: am 1281575c: am 41fac5e8: am 189f3136: am 98724126: Merge "Added sendBroadcastMultiplePermissions method" into mnc-dev
* commit '1fa2a0888284ae00c905dce7a3003b995815467a':
  Added sendBroadcastMultiplePermissions method
2015-07-15 01:58:48 +00:00
Dianne Hackborn
fd854ee58c Fix issue #21626564: MMS should be receivied while Dozing
We now place whoever is receiving the MMS on the temporary
whitelist while doing so, so they can get network access to
download it.

There was also an issue that needed to be fixed where we
were no longer updating the list of allowed uids while
dozing based on their proc states...  we now do that.

Also did a bit of optimization of the temp white list update
path do the network policy manager, instead of going through
a broadcast we now directly call in to the network policy
manager.  This also allows us to have a synchronous version
of updating the list, so we can know the app has network access
before we tell it to do anything.

Finally added battery stats events for things going on and off
the whitelist so we can diagnose the behavior there.

Change-Id: Ic7fe010af680034d9f8cb014bb135b2addef7455
2015-07-14 18:33:08 -07:00
Fyodor Kupolov
d4fd8c766d Added sendBroadcastMultiplePermissions method
Added Context.sendBroadcastMultiplePermissions(Intent intent, String[]
receiverPermissions) method, which allows an array of required permissions
to be enforced.

Bug: 21852542
Change-Id: I27c9130e8f004b428452501ebc8a36aabde1f343
2015-07-14 17:25:42 -07:00
Fyodor Kupolov
9ac5983c7b am 7aeb1a5c: am cf4617cf: am 1aeceef4: am fc4acfd9: am 4a817924: Merge "Revert "Allow array of required permissions in sendBroadcast"" into mnc-dev
* commit '7aeb1a5c19a1226f2b0ca7b498bdad941d206808':
  Revert "Allow array of required permissions in sendBroadcast"
2015-07-15 00:11:44 +00:00
Fyodor Kupolov
34ff2b04c9 am 64e8aa18: am 7f006b52: am 70174794: am ef77c116: am d69a82c1: Merge "Allow array of required permissions in sendBroadcast" into mnc-dev
* commit '64e8aa18f8c089989113ecd8775d41bffe74b41d':
  Allow array of required permissions in sendBroadcast
2015-07-14 23:10:56 +00:00
Fyodor Kupolov
4a817924ec Merge "Revert "Allow array of required permissions in sendBroadcast"" into mnc-dev 2015-07-14 22:43:47 +00:00
Fyodor Kupolov
e37520b49d Revert "Allow array of required permissions in sendBroadcast"
This reverts commit b4e7283c9a.

Change-Id: Ie8390964bda5bdfa869cee8f46584043d8e7c664
2015-07-14 22:29:21 +00:00
Fyodor Kupolov
d69a82c107 Merge "Allow array of required permissions in sendBroadcast" into mnc-dev 2015-07-14 21:57:34 +00:00
Fyodor Kupolov
b4e7283c9a Allow array of required permissions in sendBroadcast
Added Context.sendBroadcast(Intent intent, String[] receiverPermissions)
method, which allows an array of required permissions to be enforced.

Bug: 21852542
Change-Id: I3b8ff258fa9f3249c344bb8093b820b24eef00c0
2015-07-14 12:50:22 -07:00
Ian Pedowitz
fbb4a38c7c resolved conflicts for merge of 30efac5a to master
Change-Id: I0dad4cf10ed01cbf49e33f0c2ed1d6f8a1c893e0
2015-07-14 11:38:49 -07:00
Christopher Tate
4fd7987682 am d5c43b76: am df8db14e: am 0e201048: am b4494b02: am 288ecf98: Merge "Prioritize most-recently-enabled link-handling app" into mnc-dev
* commit 'd5c43b7619d9d42e902a34c8b300f882b8213309':
  Prioritize most-recently-enabled link-handling app
2015-07-14 18:28:26 +00:00
John Reck
84e7055983 am ae94ac95: am 5d84b44b: am 72e8e080: am 074b3ceb: am f96d9c54: Merge "Improve resource loading by ~3x" into mnc-dev
* commit 'ae94ac95754f4e1c4d4f9fda83e7a7e15e90d90b':
  Improve resource loading by ~3x
2015-07-14 16:52:13 +00:00
Svet Ganov
8cee6587e0 Merge "Teach storage appops." into mnc-dev 2015-07-14 01:24:37 +00:00
Svet Ganov
6ee871e598 Teach storage appops.
For modern apps targeting M SDK and up the external storage state
is deterined by granted permissions. For apps targeting older SDK
the storage access is determined by app ops correspning to the
storage permissions as the latter are always granted.

When app ops change we do not remount as we kill the app process
in both cases enabling and disabling an app op since legacy code
is not prepared for dynamic behavior where an operation that failed
may next succeed. Hence, we remount when we start the app.

For modern apps we don't kill the app process on a permission
grant, therefore we synchronously remount the app storage.

bug:22104923

Change-Id: I601c19c764a74c2d15bea6630d0f5fdc52bf6a5a
2015-07-13 18:22:30 -07:00
Christopher Tate
288ecf98f1 Merge "Prioritize most-recently-enabled link-handling app" into mnc-dev 2015-07-14 00:56:58 +00:00
Christopher Tate
f0d6cb38c4 Prioritize most-recently-enabled link-handling app
In the case when multiple apps handle a given web-link action,
all of which have been marked as "launch the app instead of a
browser" and so are otherwise ambiguous, always prefer the app
that was most recently placed into the always-handle-links state.

Bug 22051035

Change-Id: I3f43c19b0d7b74e9843445e41971bb5433affb1c
2015-07-13 17:01:14 -07:00
John Reck
4feb326015 Improve resource loading by ~3x
Bug: 22392651

ColorStateLists were never cached because the lazy-create
of the constant state had a typo.

Resource caching in general was broken because ThemeKey did not
clone the hash code, so all keys in the cache had a hashCode
of 0 which did not match the real, uncloned ThemeKeys hash code
so the binary search in ArrayMap based off of hash code was failing.

Change-Id: I9df1628b226bfa797bed97875354c19bf64f41ad
2015-07-13 14:42:43 -07:00
Svet Ganov
5a9a85d3d2 am 0bdfb97a: am 88c3918d: am 3ceb043f: am b7cf986e: am 171fe6ac: Merge "Add an API for apps to query if a permisison is denied by policy." into mnc-dev
* commit '0bdfb97a0acb8b40c78b1f40151b334d5401a2d1':
  Add an API for apps to query if a permisison is denied by policy.
2015-07-10 02:38:11 +00:00
Svet Ganov
171fe6ac0a Merge "Add an API for apps to query if a permisison is denied by policy." into mnc-dev 2015-07-10 00:32:12 +00:00
Christopher Tate
8bbd9ac746 am 531209d2: am 06566db8: am 67fbc0bd: am bf8cc192: am adebbeba: Merge "Remote extraneous debugging log message" into mnc-dev
* commit '531209d29cd571254248cdc706bdd4dc297bc331':
  Remote extraneous debugging log message
2015-07-09 23:29:37 +00:00
Christopher Tate
bf0c1ac109 Remote extraneous debugging log message
Bug 22069429

Change-Id: I4e3803aff58449b2544d9d7cca27d8d2115ccdd6
2015-07-09 12:42:50 -07:00
Svetoslav
7bd71f6541 am 122350fc: am 843d7216: am 353835e1: am c88dec32: am 6638c182: Merge "Fix reset permissions on clear data and package uninstall." into mnc-dev
* commit '122350fca781048e0a59260e2bed233b428cf3fd':
  Fix reset permissions on clear data and package uninstall.
2015-07-09 01:33:34 +00:00
Svet Ganov
ad3b297557 Add an API for apps to query if a permisison is denied by policy.
bug:22177216

Change-Id: I32227f55097fae997f33743fd1eee06cb18f47f1
2015-07-08 18:12:58 -07:00
Svetoslav
4a5f4a2bc7 Fix reset permissions on clear data and package uninstall.
If the user clears data for an app we reset the permission but
only the changes made by the user. We do not modify syste or
policy flags and also ensure the permission that were granted
by default are granted after the data wipe. This is the same
as starting with a clean slate.

If the package whose data is cleared is a part of a shared user
we resent to initial state only the permissions that the cleared
package contributed. Hence, if another package also declared the
permission as used we do not clear the permission state as it is
still in use.

When a package is deleted for a user but still present for another
user we reset its permissions to their inital state follwoing
above described strategy.

Lastly when a preinstalled package wtih an upgrade is diabled
(triggers upgrade uninstall) and this package is a part of a
shared user, we do not drop permission state (grants and flags)
for permissions used by the shadowed system package. This ensures
that we do not drop runtime permission state (such state is
default grants and user changes).i

bug:22248525

Change-Id: I3a3007476d2cb9f4ff824e1e137a6e1a4d04408b
2015-07-08 16:52:42 -07:00
Dianne Hackborn
ee94484303 am 7b3add61: am f368f6b9: am 6ee8a509: am c55c4a28: am b14dc048: Merge "Add new "preinstalled" permission flag." into mnc-dev
* commit '7b3add61c9e47b708725147dffc23d396db37add':
  Add new "preinstalled" permission flag.
2015-07-08 02:17:58 +00:00
Svetoslav
4e5dac3d6e am 3fd5ebfd: am 7cc8de60: am 0ce19f8e: am 240f8e5f: am 3e07ee07: Merge "Grant installer and verifier install permissions robustly" into mnc-dev
* commit '3fd5ebfd778e540276fb5205a8ba3185e620647d':
  Grant installer and verifier install permissions robustly
2015-07-08 02:05:26 +00:00
Dianne Hackborn
a90c8def2c Add new "preinstalled" permission flag.
This allows you to specify that a permission can be granted to
any pre-installed system app (not just privileged ones).

And as long as I am doing this, clean up the old "system" permission
flag, renaming it to "privileged" which is what it really is today,
deprecating the old names.  And switch the platform's permission
declarations to use the new name.

Change-Id: Iabf484746af232144786851ec7fe90e3de9dddb2
2015-07-07 17:25:25 -07:00
Svetoslav
3e7d977ff7 Grant installer and verifier install permissions robustly
bug:22248271

Change-Id: I3a47ae9a112ba7d88b421fcb5f9651d1168ba7a5
2015-07-07 14:02:51 -07:00
Jeff Sharkey
3bb8c85418 Merge commit '1db64c19' into merge3
Change-Id: I0aea6817876a5820a7d67a4de5bef0f86ce702a2
2015-07-06 17:25:00 -07:00
Jeff Sharkey
38cae6c8bc Merge "Reconcile private volumes when mounted." into mnc-dev 2015-07-06 17:57:46 +00:00
Svet Ganov
f127f42fd4 am b017752a: am 6bc5b226: am c5a759cf: am d8c2bbcf: am 10c111ed: Merge "Show basic feature warning for default granted permissions" into mnc-dev
* commit 'b017752aeb1d6d2ee961580de9edfc3db8722c8a':
  Show basic feature warning for default granted permissions
2015-07-06 17:00:03 +00:00
Jeff Sharkey
6dce4964b4 Reconcile private volumes when mounted.
Many things can happen while a private volume is ejected, so we need
to reconcile newly mounted volumes against known state.

First, user IDs can be recycled, so we store the serial number in the
extended attributes of the /data/user/[id] directory inode.  Since a
serial number is always unique, we can quickly determine if a user
directory "10" really belongs to the current user "10".  When we
detect a mismatched serial number, we destroy all data belonging to
that user.  Gracefully handles upgrade case and assumes current serial
number is valid when none is defined.

Second, we destroy apps that we find no record of, either due to
uninstallation while the volume was unmounted, or reinstallation on
another volume.

When mounting a volume, ensure that data directories exist for all
current users.  Similarly, create data directories on all mounted
volumes when creating a user.  When forgetting a volume, gracefully
uninstall any apps that had been installed on that volume.

Bug: 20674082, 20275572
Change-Id: I4e3448837f7c03daf00d71681ebdc96e3d8b9cc9
2015-07-04 17:08:42 -07:00
Nicolas Prevot
92ebe9a289 am b06aece7: am d16f1252: am 60373e80: Merge "Fix the case where an intent bounces several times between users." into mnc-dev
* commit 'b06aece751cc86aa859005bbb8843c5ed6be7c6f':
  Fix the case where an intent bounces several times between users.
2015-07-04 08:06:54 +00:00
Svet Ganov
e8ce8368fc am 55cd6f44: am 6fe87a56: am 68ffcf88: Merge "Teach receivers, activities, providers, and services app ops." into mnc-dev
* commit '55cd6f44fd1e49164a999e948bb91a03a3b9daf6':
  Teach receivers, activities, providers, and services app ops.
2015-07-04 07:28:18 +00:00
Dianne Hackborn
7e07288c77 am 0783b9a4: am ee987ce4: am 76664d9d: Merge "Work on issue #21589105: Scope WRITE_SETTINGS and SYSTEM_ALERT_WINDOW..." into mnc-dev
* commit '0783b9a47ae682cc85a14284e79643b5087b8c9f':
  Work on issue #21589105: Scope WRITE_SETTINGS and SYSTEM_ALERT_WINDOW...
2015-07-04 07:27:17 +00:00
Svetoslav
279a9a3131 am 90336427: am 56ef372f: am 29563632: Merge "Grant permissions to headless system calendar/contacts sync adapters." into mnc-dev
* commit '90336427fd1fc85e15a43ce36a26576013061d91':
  Grant permissions to headless system calendar/contacts sync adapters.
2015-07-04 07:25:45 +00:00
Svet Ganov
77ab6a888a Show basic feature warning for default granted permissions
bug:22174223

Change-Id: Ie8209e1f678ac459893151b5125e86eb5025aad8
2015-07-03 12:19:02 -07:00
Nicolas Prevot
60373e8060 Merge "Fix the case where an intent bounces several times between users." into mnc-dev 2015-07-02 10:27:58 +00:00
Svet Ganov
68ffcf883c Merge "Teach receivers, activities, providers, and services app ops." into mnc-dev 2015-07-01 23:59:21 +00:00
Svet Ganov
99b6043dad Teach receivers, activities, providers, and services app ops.
Perform app op check in addition to the permisison check for all four
paltform components - activities, content providers, broadcast receivers,
services - if they are guarded by a permssion that has an associated app
op. This ensures that legacy apps will behave correctly if the permission
of the caller has been revoked, i.e. the app op for that permission was
disabled.

bug:22199666

Change-Id: Ia22d1c38d58b3cd6aabdc655cb7c7bddd85da7a2
2015-07-01 16:20:00 -07:00
Dianne Hackborn
76664d9dcf Merge "Work on issue #21589105: Scope WRITE_SETTINGS and SYSTEM_ALERT_WINDOW..." into mnc-dev 2015-07-01 22:21:10 +00:00
Dianne Hackborn
de15edaa9b Work on issue #21589105: Scope WRITE_SETTINGS and SYSTEM_ALERT_WINDOW...
...to an explicit toggle to enable in Settings

Add a new permission flag, saying the permission can be automatically
granted to pre-api-23 apps.  Apply this to SYSTEM_ALERT_WINDOW.

Change-Id: I24a0ceabe7e9f5e458a864d30eda2696ad14a699
2015-07-01 12:37:00 -07:00
Nicolas Prevot
107f7b7bec Fix the case where an intent bounces several times between users.
An intent may bounce several times between users.
In this case, we want mContentUserHint to refer to the original
user.

BUG:19656340
Change-Id: I22a35fab0c228140dcb223899f5e38ff33ee5aed
2015-07-01 17:05:18 +01:00
Svet Ganov
3f69719a1b am ce3b66f5: am aadc90b5: am 67a461ec: Merge "Rename uses-permission-m to uses-permission-23" into mnc-dev
* commit 'ce3b66f542947211ed8ea7e09267bb66ff687a34':
  Rename uses-permission-m to uses-permission-23
2015-07-01 01:24:49 +00:00
Svetoslav
0010b70bea Grant permissions to headless system calendar/contacts sync adapters.
bug:21861781

Change-Id: I5f9905a23ba1b23e387adf2cea842172d34207b0
2015-06-30 18:22:20 -07:00
Svet Ganov
67a461eca8 Merge "Rename uses-permission-m to uses-permission-23" into mnc-dev 2015-07-01 00:55:58 +00:00