Commit Graph

5033 Commits

Author SHA1 Message Date
vinodkrishnan
495d891198 Revert "Revert "Remove getAppsUsingPermisisons""
This reverts commit a69c99fbc7.

Change-Id: I524a56ae3cd0d1a9dbd0e54fd7e57f09ed0b87f9
2017-01-31 16:59:46 -08:00
Andreas Huber
de17a63da6 Merge "Revert "Remove getAppsUsingPermisisons"" 2017-01-31 23:30:16 +00:00
vinodkrishnan
a69c99fbc7 Revert "Remove getAppsUsingPermisisons"
This reverts commit dfcf4fc29a.

Change-Id: Id08db7999158c76dc39f0908722ea8f5a6b21257
2017-01-31 23:00:45 +00:00
vinodkrishnan
9cfde54af0 Merge "Remove getAppsUsingPermisisons" 2017-01-31 22:30:56 +00:00
TreeHugger Robot
a941cbc59a Merge "Add a home intent category for VR headset UI mode." 2017-01-31 18:15:05 +00:00
TreeHugger Robot
c869ebff63 Merge "Add instant cookie APIs" 2017-01-31 03:17:49 +00:00
TreeHugger Robot
541af7f696 Merge "Add new api ClipDescription.getTimestamp." 2017-01-31 02:54:38 +00:00
Svetoslav Ganov
096d304ae3 Add instant cookie APIs
This change adds APIs for instant apps to store cookie data
that is presisted across instant installs and across the
upgrade from an instant to a standard app. Standard apps
can use the cookie APIs but when they are uninstalled the
cookie is also deleted. The cookies are kept longer than
the instant apps as they are much smaller - 16KB by default.
We can change the cookie size via a system setting i.e.
after we ship we can increase size if needed.

We also add internal APIs to surface information about
installed and uninstalled instant apps which should be
used for showing them in the UI. For this puporse we store
the icon, permissions, and label of uninstalled apps. If
the app is re-installed we drop this meta-data but keep
the cookie around. If we have cookie data stored and the
signing cert of the app changes when it gets re-intalled
we wipe the cookie.

Test: CTS tests pass; hiddent APIs tested manually

Change-Id: If145c0440cc61a5303e2cbb70228d235d36037a5
2017-01-30 17:52:14 -08:00
Sudheer Shanka
09971befd7 Add new api ClipDescription.getTimestamp.
ClipDescription.getTimestamp can be used to know the time
at which the associated ClipData is copied to global clipboard.

Bug: 30873580
Test: cts-tradefed run singleCommand cts-dev --module CtsContentTestCases -t \
      android.content.cts.ClipDescriptionTest
Change-Id: I9486ab3fe0696959d42f6b4c98e40f5becee3019
2017-01-30 17:19:49 -08:00
TreeHugger Robot
efdc663569 Merge "Define targetSandboxVersion" 2017-01-31 01:14:44 +00:00
Todd Kennedy
11e4507522 Define targetSandboxVersion
The new attribute allows both ephemeral and non-ephemeral apps to
opt into a new, tighter security model.

Test: Manual; built app w/ targetSandboxVersion and verified the security domain
Change-Id: I8fcaf84e25f0519b438ba51302f79790e680e025
2017-01-30 14:47:30 -08:00
Calin Juravle
1ba6b5a076 Merge changes Ic07126bf,If3a4b77f,I8b011207,I18fde62a
* changes:
  Save package dex usage info after secondary dex reconciliation
  Compile secondary dex files during background dexopt job
  Add a shell command to force the background dexopt job
  A bit more refactoring in BackgroundDexOptService
2017-01-30 20:07:21 +00:00
Vinod Krishnan
dfcf4fc29a Remove getAppsUsingPermisisons
- This was meant to be used in Clockwork but it has been removd.

Bug: 33662137

Change-Id: I89b43c0ab47e3d8fe1f5f56fb9f82ffbb064baf1
2017-01-30 12:03:42 -08:00
Calin Juravle
2b4f8731ca Merge "[PM] Clean up logic for secondary dex oat files" 2017-01-30 20:00:16 +00:00
Calin Juravle
a0f2f77cdc Merge "Compile secondary dex files in DexManager" 2017-01-30 19:59:09 +00:00
TreeHugger Robot
fe98ad919b Merge "Implement .xml font resource support" 2017-01-30 09:37:13 +00:00
Calin Juravle
cb5f41ea11 Add a shell command to force the background dexopt job
Add 'bg-dexopt-job' command to 'adb shell cmd package' which will force
the background  dexopt job to run the optimizations immediately.

Note that the command only runs the background optimizer logic. It may
overlap with the actual job but the job scheduler will not be able to
cancel it. It will also run even if the device is not in the idle
maintenance mode.

Test: adb shell cmd package bg-dexopt-job
Bug: 32871170
Change-Id: I8b0112074220b2e09baf13d842401ee1cf306a89
2017-01-27 18:56:27 -08:00
Calin Juravle
1aa5f88e35 [PM] Clean up logic for secondary dex oat files
Add logic in DexManager to reconcile secondary dex records with the
actual files on disk. If secondary dex files are moved or removed then
DexManager will remove the generated oat files during the call to
reconcileSecondaryOdex() and update its internal state.

Add 'adb shell cmd package reconcile-secondary-dex packageName' which
will force DexManager to sync its data with the actual secondary dex
files.

Test: devices bots
      runtest -x .../PackageDexUsageTests.java
      runtest -x .../DexManagerTests.java
      adb shell cmd package reconcile-secondary-dex
com.android.google.gms (after artificially/temporarily renaming some
dex files)

Bug: 32871170

Change-Id: Id2d72dc89995f89cf1ddf79ae4e992afd3f3c127
2017-01-27 18:54:35 -08:00
Calin Juravle
c22c30ed1c Compile secondary dex files in DexManager
Add logic for secondary dex compilation in DexManager. Also, extend the
`cmd package compile` command with '--secondary-dex' option which will
compile all used secondary dex files for the given package.

Test: flash & boot,
      cmd package compile --secondary-dex -f -m speed
com.google.android.gms
Bug: 32871170

Change-Id: Ia2b95cb70d26c4ead5cb650047641b0881ca84ae
2017-01-27 18:53:10 -08:00
Zak Cohen
db6ca49dd0 Add a home intent category for VR headset UI mode.
Bug: 30997244
Test: build only
Change-Id: Ibed6d24f5655ae7280c7de42cd5258b25d5af9d8
2017-01-27 15:26:07 -08:00
TreeHugger Robot
0ee455a899 Merge "Convert native changing config flags to Java flags" 2017-01-27 20:38:39 +00:00
Clara Bayarri
ed00bfdfae Implement .xml font resource support
This change implements the loading and parsing
of xml type font resources, and makes sure it is
used properly by TextView styles.

Test: run cts -m CtsContentTestCases -t android.content.res.cts.ResourcesTest
run cts -m CtsWidgetTestCases -t android.widget.cts.TextViewTest#testFontResources*

Change-Id: I5a2930b3ba7dad67d9607e9036a5dde6bab0c5a4
2017-01-27 20:16:48 +00:00
TreeHugger Robot
7d670b4f73 Merge "OMS: introduce the OverlayManagerService" 2017-01-27 19:42:59 +00:00
Paul Navin
7d0f5e8d40 Add hidden API for whether permission review mode is on. am: 7b89a7b1f7 am: 7c230c6f3c
am: dd91db5515

Change-Id: I936449f717e3c2919622181c9068ec8a48b452ad
2017-01-27 17:03:38 +00:00
Paul Navin
dd91db5515 Add hidden API for whether permission review mode is on. am: 7b89a7b1f7
am: 7c230c6f3c

Change-Id: I89c9a580a96d0f69ed30cad9ec2e4f9c215a403b
2017-01-27 16:59:33 +00:00
Paul Navin
7c230c6f3c Add hidden API for whether permission review mode is on.
am: 7b89a7b1f7

Change-Id: I925b6de9f79850dcc816a73357d1d589eeac6333
2017-01-27 16:55:03 +00:00
Paul Navin
7b89a7b1f7 Add hidden API for whether permission review mode is on.
BUG: 34240393
Change-Id: I68e55767a7da1d457a6cedd210aac9e339fb996c
2017-01-27 03:42:32 +00:00
TreeHugger Robot
416903e7c4 Merge "Unhide ApplicationInfo.volumeUuid." 2017-01-27 01:34:40 +00:00
Mårten Kongstad
eabc9e9576 OMS: introduce the OverlayManagerService
Add a new system service to manage Runtime Resource Overlays. This will
offload the PackageManagerService and allow administration of overlay
packages while affected packages continue to execute.

Overlays can be enabled or disabled during runtime. Running applications
will re-create their ResourcesImpl objects and restart their activities
via the usual activity life cycle.

The order in which a set of overlays is loaded may also be changed
during runtime. The underlying mechanics are the same as for when an
overlay is enabled or disabled.

When an overlay changes state, e.g. becomes enabled, the
OverlayManagerService will broadcast one of the new intents
android.intent.action.OVERLAY_ADDED, *_CHANGED, *_REMOVED or
*.OVERLAYS_REORDERED.

Clients that wish to read information about overlays for users other
than themselves are required to hold the
android.permission.INTERACT_ACROSS_USERS_FULL permission. This mirrors
the protection level of PackageManager.getPackageInfo.

Clients that wish to change the information are required to
hold the permission android.permission.CHANGE_OVERLAY_PACKAGES.

Each pair of overlay package and corresponding target package is
respresented by a new OverlayInfo class. This class mirrors the
existing PackageInfo class.

Overlay packages are handled per Android user. The data is persisted in
/data/system/overlays.xml.

Co-authored-by: Martin Wallgren <martin.wallgren@sonymobile.com>
Signed-off-by: Zoran Jovanovic <zoran.jovanovic@sonymobile.com>
Bug: 31052947
Test: run tests from 'OMS: tests for OverlayManagerService'
Change-Id: I15325e173193df3240b8dc0a58c852fd7a3d5916
2017-01-26 17:04:53 -08:00
Jeff Sharkey
6112860c5c Unhide ApplicationInfo.volumeUuid.
Apps need it to interact with the new StorageStatsManager APIs.

Test: builds, boots
Bug: 34723750
Change-Id: I274d5bd425cd401e10647959ba18f9956628d810
2017-01-26 17:08:40 -07:00
Sunny Goyal
33d9bc529e Merge "Adding AppWidgetManager.isRequestPinAppWidgetSupported" 2017-01-26 22:22:55 +00:00
Alan Viverette
9ad386b37c Convert native changing config flags to Java flags
Also adds more annotations.

Bug: 33080269
Test: ResourcesTest#testChangingConfiguration
Change-Id: I08d438821b96e3d74da1c1c34009673c77caf27e
2017-01-26 14:00:20 -05:00
TreeHugger Robot
6ee80f3a65 Merge "Change configuration's color mode based on the display's color mode" 2017-01-26 18:56:23 +00:00
TreeHugger Robot
bcf3b70371 Merge "Adding an api for apps to check whether they can install apps" 2017-01-26 07:35:33 +00:00
Elliot Waite
0ce4b0e4c3 Fix @links in reference docs. am: 54de77470d am: ab978c035e am: 28ba4722a9
am: 9b21265b2c

Change-Id: If246ebdb36cf2832d5a6c42cbe752e290b6fb6e8
2017-01-26 04:49:33 +00:00
Elliot Waite
9b21265b2c Fix @links in reference docs. am: 54de77470d am: ab978c035e
am: 28ba4722a9

Change-Id: I98177a8cf0a20677e140406bb7371474ca259e5b
2017-01-26 04:44:54 +00:00
Elliot Waite
28ba4722a9 Fix @links in reference docs. am: 54de77470d
am: ab978c035e

Change-Id: If0d0613362e0ea95cf48eaf9a16d3eea48b589ea
2017-01-26 04:39:57 +00:00
Suprabh Shukla
aef2513c71 Adding an api for apps to check whether they can install apps
Some apps may want to check whether they are trusted to install apps on
the device, so they can prompt the user to go to settings and mark them
as trusted before they do an intensive operation like downloading an
apk.

Test: cts-tradefed run cts -m CtsExternalSourcesTestCases

Bug: 31002700
Change-Id: Icd9d04daa157e6733decba245ec251ce4acd4122
2017-01-25 17:26:02 -08:00
Elliot Waite
54de77470d Fix @links in reference docs.
Change-Id: I40cea46efd80c448640ff69753698fe8404da40b
2017-01-25 17:00:55 -08:00
Romain Guy
408afbf060 Change configuration's color mode based on the display's color mode
Bug: 32984164
Test: CtsContentTestCases

Change-Id: Iedc7d1cc488b80718576082667b6e96956c4f847
2017-01-25 14:43:36 -08:00
TreeHugger Robot
a92c180107 Merge "Also parse "1" as true for ContentValues#getAsBoolean" 2017-01-25 20:19:11 +00:00
Adam Lesinski
4e8628157a Add support for Split APK dependcies
Apps can now declare in their base APK AndroidManifest.xml
that they want to have their split APKs loaded in isolated
Contexts. This means code and resources from the split
get loaded into their own ClassLoader and AssetManager.

<manifest xmlns:android="..."
          ...
          android:isolatedSplits="true"
          ...

In order to make this more useful, splits can declare dependencies
on other splits, which will all get pulled in to the Context
and run as expected at runtime.

A split declares its dependency on another split by using the
tag <uses-split> in its AndroidManifest.xml:

<manifest xmlns:android="...">
    ...
    <uses-split android:name="feature_split_1" />
    ...

A split can have a single parent on which it depends on. This is
due to the limitation of having a single ClassLoader parent.
All splits depend on the base APK implicitly.

PackageManager verifies that no cycles exist and that each dependency
is present before allowing an installation to succeed.

The runtime will then load splits based on the dependencies.

Given the following APKs:

base <-- split A <-- split C
  ^----- split B

If an Activity defined in split C is launched, then the base,
split A, and split C will be loaded into the ClassLoader defined
for the Activity's Context. The AssetManager will similarly be loaded
with the resources of the splits.

A split can be manually loaded by creating a Context for that split, defined
by its name:

Context.createContextForSplit("my_feature_split_1");

All installed Activities, Services, Receivers, and Providers are accessible
to other apps via Intent resolution. When they are instantiated, they are
given the appropriate Context that satisfies any dependencies the split they
were defined in stipulated.

Test: WIP (CTS tests to come)
Change-Id: I8989712b241b7bc84381f2919d88455fcad62161
2017-01-24 18:34:08 -08:00
Ralph Nathan
9d3d90a22f Merge "Add FEATURE_EMBEDDED to PackageManager" 2017-01-25 01:32:54 +00:00
Sunny Goyal
7f7372ae2a Adding AppWidgetManager.isRequestPinAppWidgetSupported
Launchers can choose to implement support pin shortcut or pin appwidget
or both by specifying different actions in the intent filter

Test: Automated tests and CTS
Bug: 34174006
Change-Id: I4456dbb943cfba11d465556f0732f0ed629ab3ba
2017-01-24 17:26:14 -08:00
TreeHugger Robot
e84ad491c8 Merge "Add color mode to activity/window" 2017-01-25 01:20:28 +00:00
Romain Guy
4832745b84 Add color mode to activity/window
The color mode lets an application request a wide color gamut for
a specific window. This will also be used in the future to request
HDR. The color mode is currently either default (sRGB) or an undefined
wide gamut color space chosen by the platform. These attributes could
later be used to choose a specific color space if we deem this important
or useful.

This change also renames the various "colorimetry" attributes and
constants to "color mode" for consistency. These symbols were
added in O and can be safely renamed.

Test: CtsColorModeTestCases
Bug: 32984164
Change-Id: I4d4691dd12dbe3f3aa6a5cf893cff39aa16c739e
2017-01-24 15:55:09 -08:00
Makoto Onuki
454a9777b8 Merge "Add client package name to WTF message" 2017-01-24 23:42:31 +00:00
Matthew Snider
c755fb64f6 Merge "Introducing clear package data intent" 2017-01-24 23:31:12 +00:00
Ralph Nathan
b8e0dee9af Add FEATURE_EMBEDDED to PackageManager
This CL adds FEATURE_EMBEDDED to PackageManager to identify Android
Things devices.

BUG: 34644059
Test: built using make update-api

Change-Id: Ife4430e4a445f6afdd969e94db5fe5c9098ee145
2017-01-24 15:30:50 -08:00
Winson Chung
6d2fe9e96d Merge "Remove dependency on resizable activity to enter PiP." 2017-01-24 22:26:47 +00:00