Commit Graph

3657 Commits

Author SHA1 Message Date
Fyodor Kupolov
09b108e2bb Merge "Added keep-uninstalled-packages DO policy" 2015-11-20 23:18:29 +00:00
Fyodor Kupolov
cb6fd80721 Added keep-uninstalled-packages DO policy
This policy allows DO to specify a list of apps to cache even without being
installed on any user.

Bug: 23938464
Change-Id: I2eeab7f148409739fc23a5c44e955ad12b63fd04
2015-11-20 14:51:56 -08:00
Przemyslaw Szczepaniak
3f72604be8 Use HexDump instead of java.lang.IntegralToString
java.lang.IntegralToString is being removed, replaced
all its usage by com.android.internal.util.HexDump.

Bug: 24932279
(cherry-picked from 15fc0548a536750110e159e06a39ba943eccdd81)

Change-Id: Id6ab88337af12d93cd73c41775b9d5baa1e61d96
2015-11-20 14:11:02 +00:00
Tomasz Mikolajewski
a8057a9dce Add first-class support for virtual files in SAF.
Bug: 20820363
Change-Id: Ic509a6003a99997126f129a836fdd8c0e843108f
2015-11-20 16:26:18 +09:00
Todd Kennedy
b4fdb933cb Merge "Allow ephemeral provider/installer" 2015-11-19 18:54:57 +00:00
Todd Kennedy
b8a279ee83 Allow ephemeral provider/installer
The ephemeral provider is a service that simply determines whether or
not an ephemeral application is available. The ephemeral installer
does the heavy lifting of installing the ephemeral application.

Bug: 25119046
Change-Id: I591f4c2c3f2b149d299fa8b4f359f2582d9199cb
2015-11-19 10:25:53 -08:00
Jeff Sharkey
ba51235ef5 More file-based encryption work.
Add new "am unlock-user" command so we can trigger changes from the
command line.

Move FBE check to static method so it can safely be called early
during boot before the mount service is ready.  Move FBE emulation
to persisted system property, and start reading/writing that value.

Change default permission grants to ignore current encryption-aware
flags, since many of the target apps aren't crypto aware.

Always prepare package data directories, which is how we create the
new "user_de" paths during boot.

Bug: 22358539
Change-Id: I6f58ea2d34b3a466d3775d614f8a13de92272621
2015-11-19 11:02:30 -07:00
Dianne Hackborn
354c3bc394 Merge "Some debugging improvements." 2015-11-17 00:41:07 +00:00
Jeff Vander Stoep
9edb7bf4c6 fix ApplicationInfo flag collision
Give PRIVATE_FLAG_AUTOPLAY unique value

Bug: 25726468
Change-Id: I1dabe26eb4c72004ebd7e33252240e10c15c9159
2015-11-16 15:23:38 -08:00
Jeffrey Vander Stoep
25bfb2b3d8 Merge "pm: selinux support for AutoPlay apps" 2015-11-16 19:38:33 +00:00
Alan Viverette
4d07bc99f0 Clean up usage of temporary TypedValue in Resources
Reduces the amount of time that a lock is held and reduces the scope of
the lock to only manage the temporary TypedValue. Also ensures that the
typed value is consistently returned to the (single item) pool.

Additionally, performs some refactoring:
- removes unused variables and constants
- moves the NotFoundException cause into the constructor for consistency
  with other Exceptions
- inlines sPreloadedDensity which was not used anywhere
- fixes line wrapping and indentation in nearby code

Aside from improvements to locking, there are no functional changes in
this CL.

Change-Id: I8c3059261e3cc2288a086e6637ab946e0b7d3741

Clean up usage of temporary TypedValue in Resources

Reduces the amount of time that a lock is held and reduces the scope of
the lock to only manage the temporary TypedValue. Also ensures that the
typed value is consistently returned to the (single item) pool.

Additionally, performs some refactoring:
- removes unused variables and constants
- moves the NotFoundException cause into the constructor for consistency
  with other Exceptions
- inlines sPreloadedDensity which was not used anywhere
- fixes line wrapping and indentation in nearby code

Aside from improvements to locking, there are no functional changes in
this CL.

Change-Id: I8c3059261e3cc2288a086e6637ab946e0b7d3741
2015-11-16 10:19:12 -05:00
Fyodor Kupolov
1682dad7ed Moved system user apps whitelisting to PM
Previously applications where uninstalled for the system user at a later stage
in a boot process, when PM has already been initialized and registered as
a service. This was causing a flood of PACKAGE_REMOVED broadcasts.

Applications are now uninstalled at an earlier stage, when PM hasn't been
registered. Packages can simply be marked as not installed and broadcast
can be skipped.

Bug: 25626819
Change-Id: Ib64e7c45619809b0efb99cc566a9a2120ed48cd3
2015-11-12 13:48:18 -08:00
Jeff Vander Stoep
a4407bfcee pm: selinux support for AutoPlay apps
Add AutoPlay flag to ApplicationInfo.

Append autoplay flag to seinfo string - passed to libselinux for
domain labeling decision.

Change-Id: Ieb45ba328140888c0b679bf344df154658f9fbae
2015-11-11 13:55:34 -08:00
Dianne Hackborn
3cdb56efea Some debugging improvements.
- Fix dumping of package manager intent filters so the option
  to print the filter detail works again.
- Extend dump resolvers to allow you to specify the specific
  types of resolvers you'd like to dump.
- Add new package manager commands for querying activities,
  services, receivers.
- Move the code for parsing a command line into an intent to
  the framework, so it can be used by the new package manager
  commands and later elsewhere.

Change-Id: I56ea2bb8c3dd0e5198ee333be8f41ad9dcdb626f
2015-11-11 12:45:44 -08:00
Jeff Sharkey
f9fc6d6cc0 More file-based encryption work.
Add granular StorageManager APIs for key creation/destruction and
unlocking/locking.  Start passing through an opaque token as part
of the unlock command, but leave it empty for now.  We now have a
separate "prepare" method that sanity checks that user directories
are correctly setup.

Define a handful of system properties used for marking devices that
should be operating in FBE mode, and if they're emulating FBE.  Wire
a command to "sm", but persisting will come later.

Start using new "encryptionAware" flag on apps previously marked with
coreApp flag, which were apps running in the legacy CryptKeeper
model.  Small tweaks to handle non-encryptionAware voice interaction
services.  Switch PackageManager to consult StorageManager about the
unlocked state of a user.

Bug: 22358539
Change-Id: Ic2865f9b81c10ea39369c441422f7427a3c3c3d6
2015-11-11 10:47:23 -08:00
Nicolas Geoffray
183501e1aa Merge "Remove performBootDexOpt and am's ensurePackageDexOpt." 2015-11-11 12:58:27 +00:00
Nicolas Geoffray
27c0737969 Remove performBootDexOpt and am's ensurePackageDexOpt.
Except common shared libraries and boot image, all compilations
are now done through BackgroundDexOptService.

Change-Id: Ib736e253c38b0c8085bc94e45f4e61a048f66e26
2015-11-11 12:19:08 +00:00
Roozbeh Pournader
417bbe0179 Fix case where some locales may have empty langauges.
This is to make the behvior the same as before
47f71a697a for cases when some of the
locales' languages are empty.

Change-Id: Ifee92e199f20130e060670f244eb3b4b7be13872
2015-11-09 17:10:46 -08:00
Roozbeh Pournader
87e1db355b Merge "Use the full locale list in resourceQualifierString()." 2015-11-10 00:45:49 +00:00
Roozbeh Pournader
6da1693c0c Merge "Removed unused setLocale() method." 2015-11-09 17:22:37 +00:00
Jeff Sharkey
e17ac15697 More APIs for encryption-aware apps.
Apps can mark manifest components as being encryption-aware, which
means they can safely be run before the credential encrypted storage
is available.

Start adding filtering logic so that we only return these components
when a user is running "with amnesia."  That is to say, only device
encrypted storage is available, so the user is running but with only
partial knowledge of its data.

To avoid calling into ActivityManager with the PackageManager lock
held, we quickly determine user state and splice the state into the
flags for later per-component evaluation.

Bug: 22358539
Change-Id: Idc56ec29f1ef04da8963e004314d7f5e47400997
2015-11-08 13:29:16 -08:00
Roozbeh Pournader
47f71a697a Use the full locale list in resourceQualifierString().
Previously, only the first locale was dumped to the output in
android.content.res.Configuration#resourceQualifierString(). Now the full
locale list is part of the output.

Change-Id: I5d4b73738a14d48533ee96c38dbc6c4b204ea998
2015-11-07 11:55:38 -08:00
Roozbeh Pournader
0d02bd8442 Removed unused setLocale() method.
The setLocale() method in android.content.res.AssetManager was not
used. Removing it to reduce maintenance cost.

Change-Id: I1b168fe84c2465d1ebc2b62bb965eda885e1220a
2015-11-07 11:22:24 -08:00
Jeff Sharkey
15447798a3 Initial file-based encryption public APIs.
Define two explicit directories where device-encrypted and
credential-encrypted data will be stored.  Third-party apps only
need access to the device-encrypted directory, so that's the only
API exposed for now.

General cleanup in how ApplicationInfo details are derived.

Bug: 22358539
Change-Id: If0a0108721a4aa1c3052b4912e08604bbf24e1ae
2015-11-06 18:35:27 -08:00
Svet Ganov
f2acc54aad Fix some docs
Change-Id: Ie28788330249a1f96b7b168a05546d3d0862a9cf
2015-11-06 17:16:06 +00:00
Clara Bayarri
f7fea166d4 Intercept activity start with ConfirmCredentials
When the calling user is a work profile and the device has
file based encryption enabled, show the work challenge via the
Confirm Credentials APIs before launching the requested activity.

A companion CL in Settings will add support to the Confirm
Credentials flow to read the given intent extra and fire it when
the authorization succeeds.

This is part of the Separate Work Challenge feature.
Note nobody will see this yet as the feature is conditioned by
file based encryption.

Change-Id: I303890095936b1fd1f6a99d645724dffba144345
2015-11-04 16:46:41 +00:00
Glenn Kasten
6a230aa10b Merge "CDD for pro audio feature does not specify acoustics" 2015-11-02 19:54:41 +00:00
Glenn Kasten
7587edccd0 CDD for pro audio feature does not specify acoustics
Change-Id: If24a2ee485a35ad18969abacf55798b64ff939af
2015-10-30 18:26:49 -07:00
Jeff Sharkey
df5f870d98 resolve merge conflicts of 07c6628d68 to master.
Change-Id: I29c9b408956c578ce1cfe0eb5d8704b7a5d2f818
2015-10-30 15:44:58 -07:00
Jeff Sharkey
07c6628d68 Merge "Handle "uninstalled" apps when pruning app-ops." into mnc-dr-dev am: a975732a83 am: 637d05eb5c
am: d359137d41

* commit 'd359137d419023f207351251cdbfa23180236963':
  Handle "uninstalled" apps when pruning app-ops.
2015-10-30 21:59:36 +00:00
Jeff Sharkey
637d05eb5c Merge "Handle "uninstalled" apps when pruning app-ops." into mnc-dr-dev
am: a975732a83

* commit 'a975732a8302893a40cdc444f893bf09b7669173':
  Handle "uninstalled" apps when pruning app-ops.
2015-10-30 21:37:17 +00:00
Anthony Hugh
58a98c4572 Merge "Add intent extra for determining if apps are system apps" into cw-e-dev am: 3a9bf5c8ce am: a8e20b3919
am: c2b3e48bb1

* commit 'c2b3e48bb1ab75163f8d7890db39b91436c06015':
  Add intent extra for determining if apps are system apps
2015-10-30 20:27:33 +00:00
Anthony Hugh
c2b3e48bb1 Merge "Add intent extra for determining if apps are system apps" into cw-e-dev am: 3a9bf5c8ce
am: a8e20b3919

* commit 'a8e20b391909cbc115e8996bd247e84a2819bfc3':
  Add intent extra for determining if apps are system apps
2015-10-30 20:19:36 +00:00
Jeff Sharkey
e2ed23e6b2 Handle "uninstalled" apps when pruning app-ops.
During system boot, we prune app-ops belonging to apps that have
been uninstalled.  However, apps installed on adopted storage devices
haven't been scanned at this point, so they appear to be uninstalled.

To avoid pruning app-ops for these apps, we need a getPackageUid()
variant that also considers "uninstalled" apps for which we still
have PackageSetting values.

Bug: 25206071
Change-Id: I1820f674d45c5ddc1c5f10ed7d859e7025005e28
2015-10-29 19:04:15 -07:00
Fyodor Kupolov
9147ce4cf9 Merge "Enable default system IMEs for system user" 2015-10-28 17:05:58 +00:00
Vladislav Kaznacheev
56f0720fd7 Merge " Add PackageManager.FEATURE_FREEFORM_WINDOW_MANAGEMENT" 2015-10-28 00:59:06 +00:00
Vladislav Kaznacheev
d303b25ad3 Add PackageManager.FEATURE_FREEFORM_WINDOW_MANAGEMENT
Bug: 25329519

Change-Id: Ib09cb2332ee1810b2f774a8453fe519fa920cd5d
2015-10-27 17:30:58 -07:00
Fyodor Kupolov
b3b4f61525 Enable default system IMEs for system user
Added GET_DEFAULT_IMES flag to AppsQueryHelper. Default system IMEs are now
enabled for system user.

Bug: 25276229
Change-Id: I38d74903951200e2207e1864bb3a815f8f2d572f
2015-10-27 13:55:40 -07:00
Anthony Hugh
3575a40009 Add intent extra for determining if apps are system apps
This is being added to help identify system apps so that
the UI can filter on that type.

BUG: 24955055
Change-Id: Ie4be3717ce997f60eeb48a389c0f54ce5803141a
2015-10-26 17:47:05 -07:00
Wale Ogunwale
b60692e3d8 Support for activity to opt-in/out of PiP form of multi-window.
While it makes sense to be able to resize most activities types
in multi-window mode. It only makes sense to put specific types
of activities in Picture-in-Picture (PiP) form of multi-window.
For example, activities that play video will be good candidates
while the Settings activity isn't.

The new flag allows the system to differentiate between resizeable
activities that can go into PiP mode and those that can't.

Bug: 25006507
Change-Id: I8ac518cec2fa3c8fb88be40c266b3751fb88f1ce
2015-10-26 12:23:59 -07:00
Jeff Sharkey
008672f62d Merge "Correctly derive ABI for apps on adopted media." into mnc-dr-dev am: 55d2b6e8e6 am: 257d2ca7fd am: e01b99faa5
am: 6dee8faff3

* commit '6dee8faff3b25c6dd6c8fa308ceb0fb8b31f6a05':
  Correctly derive ABI for apps on adopted media.
2015-10-21 01:22:32 +00:00
Jeff Sharkey
6dee8faff3 Merge "Correctly derive ABI for apps on adopted media." into mnc-dr-dev am: 55d2b6e8e6 am: 257d2ca7fd
am: e01b99faa5

* commit 'e01b99faa54a083ae7b10db902a03f4aa6c9bd63':
  Correctly derive ABI for apps on adopted media.
2015-10-21 01:15:29 +00:00
Jeff Sharkey
257d2ca7fd Merge "Correctly derive ABI for apps on adopted media." into mnc-dr-dev
am: 55d2b6e8e6

* commit '55d2b6e8e6f364e2fd52c45b5fa3eb6a56082456':
  Correctly derive ABI for apps on adopted media.
2015-10-21 00:55:05 +00:00
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
Todd Kennedy
2fbd20fd7b Merge "Enable "quick install"" 2015-10-20 21:25:24 +00:00
Matthew Williams
c31529097d DO NOT MERGE Sync extras bundle comparison can throw NPE am: 7d7a2254bc am: cb937cbc6a
am: d7d56a4feb

* commit 'd7d56a4feb5502e17dea4ebb4c9b22347be2b7d3':
  DO NOT MERGE Sync extras bundle comparison can throw NPE
2015-10-20 21:06:31 +00:00
Todd Kennedy
27c24fb8b8 Enable "quick install"
Quick install skips a lot of the normal install steps in order to
dramatically reduce the installation time [eg Twitter normally takes
20s to install. But, installs in under 2.5s with quick install]

The specific optimizations [with caveats]:
1. Use the JIT. Although the oat file is technically created, it
only contains the exploded contents of the APK and does not contain
pre-compiled native binary code. While this improves install time,
it impacts app execution. [saves 17s]
2. Bypass Play verification. Play normally verifies all installs
to ensure we're not installing malware. But, it can take multiple
seconds for Play to collect and send package information to our
backend servers. [saves 2.7s]
3. Reduce JAR file verification. Due to the structure of the JAR
certs, we cannot completely bypass JAR processing. However we skip
the step of verifying every manifest entry. [saves 1.3s]

NOTE: #2 and #3 will only occur on eng/user-debug builds.

Bug: 22848361
Change-Id: I48e77595ad5c13a9534fdb06da67ba8dae2797fb
2015-10-20 13:54:19 -07:00
Matthew Williams
cb937cbc6a DO NOT MERGE Sync extras bundle comparison can throw NPE
am: 7d7a2254bc

* commit '7d7a2254bc41d2dfc34fbb8693cb0dad2ccd528a':
  DO NOT MERGE Sync extras bundle comparison can throw NPE
2015-10-20 20:42:07 +00:00
Rob Carr
2d021f9f48 Merge "Correct ActivityInfo constructors." into mnc-dr-dev am: cfea184d6c am: e2a49862c1
am: 8caf80d571

* commit '8caf80d571c37bc6fefd68227432fd49d76aaa93':
  Correct ActivityInfo constructors.
2015-10-20 19:26:38 +00:00