Commit Graph

3420 Commits

Author SHA1 Message Date
Jeff Sharkey
55d2b6e8e6 Merge "Correctly derive ABI for apps on adopted media." into mnc-dr-dev 2015-10-21 00:48:47 +00:00
Jeff Sharkey
bbcb331205 Correctly derive ABI for apps on adopted media.
There was a bug causing PackageManager to think apps on adopted media
were actually in an ASEC, causing it to skip ABI derivation.  This
change fixes the issue by copying the volume UUID into place early
in the scanning process.

Also fixes two places where we had incorrectly been including apps
on adopted media; switched them to check only for ASECs.

Bug: 24583803
Change-Id: If66d1bce02824a4d8e22f741b04a2abda0378cfb
2015-10-20 17:32:05 -07:00
Matthew Williams
7d7a2254bc DO NOT MERGE Sync extras bundle comparison can throw NPE
BUG: 23591205
Change-Id: Ic6404c0befe70c34b078e0eae6a627826173d82c
(cherry picked from commit 9ad2c84033)
2015-10-20 18:55:30 +00:00
Robert Carr
8ab115a9aa Correct ActivityInfo constructors.
ActivityInfo was missing initialization for the
documentLaunchMode flag in the copy-constructor
and the Parcel constructor. The copy-constructor
is used in multi-user/profile mode to create a
seperate instance of the ActivityInfo per uid
and this was manifesting in the linked bug.

Bug: 21590916
Change-Id: I6f71d94ec32ec6326d23c9b62e9d8d319e2fa25e
(cherry picked from commit 3e2e011785)
2015-10-20 17:48:11 +00:00
Jeff Sharkey
59d28dc820 Update docs to reflect adoptable behavior.
Update storage related docs on Context to be consistent, and to call
out relevant Environment methods.  Start calling it "shared" storage,
and only mention external for historical reasons.  Mention that there
isn't much benefit to using emulated storage over private data
directories to help guide developers to safer locations.

Point out which paths can change over time, so developers know to
only persist relative paths.

Update Environment docs to reflect how they behave for the new
class of adopted storage devices.

Bug: 24251945
Change-Id: Ie5ab337649b4740dfd7594997bbb19c4969cfd2f
2015-10-14 14:41:23 -07:00
Fyodor Kupolov
ebcac16cb1 Use app directory as apkPath for cluster installs
Previously, size of of oat directory was not counted by the getsize command,
because base APK location was passed as apkpath argument.

Bug: 23896047
Change-Id: Ic7b6b725785ff2e2a0cf3887ba68c162b23b1212
2015-09-10 10:44:49 -07:00
Fyodor Kupolov
e6c64508ab Merge "Fixed a typo in convertRestrictionsToBundle JavaDoc" into mnc-dev 2015-08-21 23:04:09 +00:00
Fyodor Kupolov
7d35fc3898 Fixed a typo in convertRestrictionsToBundle JavaDoc
Bug: 23408097
Change-Id: Ie06c33aa7b9a953dec645d1763e27dcb506764f0
2015-08-21 11:25:55 -07:00
Fyodor Kupolov
1af7a83939 Fixed key comparison in equals method
Bug: 23376695
Change-Id: Ie4bd55a88f5f86fd8de7b087d0a5f1755951e90d
2015-08-20 10:24:14 -07:00
Dianne Hackborn
ae49872100 Add debugging for issue #23190084: [APPComm][Dev Test] {Unable to share photo...
...from Camera360 to Hangouts }

In the short URI toString, include a small summary of the ClipData (instead
of just saying it has a clip data).  This makes it a lot easier to understand
what is happening when you look at the log of activity starts.

Also separate out the activity manager dump of URI permission grants from
its dump of providers, so it is easy to just look at that state.

Change-Id: I68093d9f279944e1aa9a29347075f237f4f55ed3
2015-08-14 14:08:43 -07:00
Christopher Tate
56f0ff3c48 Make "Ask every time" actually work that way
..in link-opening behavior.  If a candidate is marked as "ask
every time," then the user is guaranteed to get a disambiguation
prompt including that candidate even when some other candidate
app is in the "always prefer this over a browser" state.

Bug 23147746

Change-Id: I904d8697a992b3f16f32b1c1b49c2bf9424c7137
2015-08-13 18:56:05 -07:00
Svet Ganov
3e0be7440b Do not show removed permissions in the UI - framework
bug:23043018

Change-Id: Ia5cf49f299eda627d9fde2b34498812afcb3a6d5
2015-08-07 23:06:04 -07:00
Filip Gruszczynski
52d3312abe Merge "Make ResourceKey always use non-null configuration override." into mnc-dev 2015-08-04 23:02:19 +00:00
Filip Gruszczynski
a01f48681c Make ResourceKey always use non-null configuration override.
We don't differentiate between null conifguration and
Configuration.EMPTY, but if ResourceKey uses both, it will produce
different hashes and won't be equal. This CL makes ResourceKey always
hold a non null reference to the Configuration object.

We started delivering the configuration overrides in
Ib2c7be0b427f5ce05e7a362bcdd496ddbc9164f0, which changed behavior from
using always null, to using both null and Conifguration.EMPTY for empty
confgiuration. Now we will switch to using only one value, which is
Configuration.EMPTY.

Bug: 22620824
Change-Id: I090fd90ac21a6b3ebc7f2974a91dd7c861af10d7
2015-08-04 15:26:14 -07:00
Matthew Williams
665d0140ef Remove spurious syncmanager wake-ups
BUG: 22287469
1) Fix SyncManager waking up every 2 hrs if there is nothing
to do.
2) Fix sync wake-up alarm not being properly updated if the new
alarm was in the future.
2a) Due to staus bar sync signal that were removed post-K
one of the wake-ups was for 30s in the future, removed this
@hide intent completely.
3) The SyncManager will still set a timeout alarm for 5mins after
the start of a sync. Leaving this in as to post to a handler is
less expensive but more complex, and the alarm update is
correctly working now.

Change-Id: If51c9dd68391ccaeb480a17eb5a1364c4afe4c2a
2015-08-03 18:15:12 -07:00
Dianne Hackborn
28ec27cbfa Fix issue #22912704: "android.process.acore has stopped" dialog keeps popping up
Slice 'em up!

Change-Id: Ibba3af7ec5b7f92e6d5e55a57aa838a7f7f936e1
2015-08-03 15:28:28 -07:00
Dianne Hackborn
c1836bb0f1 Merge "Change MNC codename to just M." into mnc-dev 2015-07-31 17:11:58 +00:00
Dianne Hackborn
0e3de6caca Change MNC codename to just M.
Change-Id: I4281d200ff6560791c47cf9073ceea1cb509361e
2015-07-29 15:20:21 -07:00
Svetoslav Ganov
9352af2a9e Merge "Remove dependencies on the package installer's package name" into mnc-dev 2015-07-29 17:54:23 +00:00
Sailesh Nepal
6b96de8dae Merge "Default permissions for sim call manager" into mnc-dev 2015-07-29 17:39:37 +00:00
Dianne Hackborn
eda1cc50ce Merge "Work on issue #22765972: Binder transactions running out of address..." into mnc-dev 2015-07-29 17:05:58 +00:00
Svet Ganov
f1b7f20bb8 Remove dependencies on the package installer's package name
bug:22700053

Change-Id: I8540eb8577fbec84e1a67e31e1c31ba654c828a4
2015-07-29 08:33:46 -07:00
Sailesh Nepal
cf85562bc9 Default permissions for sim call manager
This CL adds the following permissions by default to the
SIM call manager:
 - microphone
 - phone

BUG: 22790160
Change-Id: Icaf1db6c6943b3ddbd16a946a81d1bfb734d761f
2015-07-28 22:16:25 -07:00
Dianne Hackborn
86cbc2bf30 Work on issue #22765972: Binder transactions running out of address...
...space causing package manager to fail

Lower the maximum IPC size we use in various places, to keep it
under the threshold of becoming dangerous.  Now everything tries
to keep not much more than 64k.

Change-Id: I814013097966a7843179e5d581bfdb254c5ae318
2015-07-28 18:13:21 -07:00
Dianne Hackborn
9dc6c61a80 Fix issue #22802782: APR: NPE in package manager with bad intent data
If they pass in a null data for the intent matching, don't throw up
on it, just consider it to not match.

Change-Id: I30b6af49989eb8b5c2e585ce5d96416f0daff3a8
2015-07-28 17:30:59 -07:00
Jeff Sharkey
0e621c3921 Also check app-ops on path-permissions.
Any place that we check permissions we also need to check any
app-ops associated with those permissions.  In the case of providers
with both <provider> and <path-permission> permissions, track and
report the strongest app-ops denial.

Bug: 22718722
Change-Id: I45e62de39b04d16d071558ad980b701667cfcb9a
2015-07-24 15:16:11 -07:00
Jim Miller
abd35bfc81 Merge "Add FEATURE_FINGERPRINT to PackageManager's feature list" into mnc-dev 2015-07-24 02:41:00 +00:00
Svet Ganov
9c8b8ab941 Reset permissions and app links when clearing app preferences - framework
bug:22359132

Change-Id: I198c0b1cd6c3dcb91fe560874a8502eb6b5f65b3
2015-07-23 10:36:35 -07:00
Jim Miller
d9b9d41082 Add FEATURE_FINGERPRINT to PackageManager's feature list
Fixes bug 22674557

Change-Id: I3d78e6bedc3ac18a25a06ac50e3a7eee4161fe70
2015-07-22 19:54:15 -07:00
Dianne Hackborn
cfbfafe1b9 Work on issue #22303510: Additional permissions aren't properly...
...disabled after toggling them off

Keep track of whether a permission that has been declared by an app
was able to actually be installed in the system, along with an API
to find this information so that system UI can tell whether that
permission is of interest.

Also clean up some of the permission debug output.

Change-Id: If4541bedb857789b255bb18f03cad155dcda0b95
2015-07-21 17:01:15 -07:00
Alan Viverette
7ef1e773fd Add missing invalidation check to drawable cache
Bug: 22478448
Change-Id: Ic9da1898cd921d8c133ef5397fc97a664601a863
2015-07-20 16:03:04 -04:00
Svet Ganov
d4b566bf56 Merge "Add APIs for verifier to grant at install and revoke permissions" into mnc-dev 2015-07-16 22:22:01 +00:00
Svet Ganov
7121e18595 Add APIs for verifier to grant at install and revoke permissions
bug:22231699

Change-Id: Ie0c758bf73699f50bf99ff5aa0bf98dcc9004e37
2015-07-15 22:22:59 -07: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
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
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
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
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
bf0c1ac109 Remote extraneous debugging log message
Bug 22069429

Change-Id: I4e3803aff58449b2544d9d7cca27d8d2115ccdd6
2015-07-09 12:42:50 -07: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