Commit Graph

5841 Commits

Author SHA1 Message Date
Calin Juravle
9aab3b513d Handle configuration splits when creating the class loader context
Configuration splits have no dependencies which can lead to exceptions
when computing their class loader context.

In general, we do not need to compute the class loader context for apks
without code.

This CL addresses the issue by ignoring "code" paths with no actual code.

(cherry picked from commit da09815e2c)

Bug: 65159159
Test: adb install-multiple config_splits
      runtest -x
services/tests/servicestests/src/com/android/server/pm/dex/DexoptUtilsTest.java

Merged-In: Ida1eb901eecba4a4266de73022f6ee4659367873
Change-Id: Ida1eb901eecba4a4266de73022f6ee4659367873
2017-11-02 09:27:59 -07:00
Calin Juravle
a18e992770 Use the class loader context when optimizing secondary dex files
Record the class loader context for secondary dex loads and pass it to
dexopt during compilation.

The class loader context is passed from libcore every time a
BaseDexClassLoader is created and its recorded in the package dex usage
file.

Note that the context may be:
- unknown: if the dex file was not use after the the upgrade and its
context was not yet updated
- unsupported: if any of the class loaders from the loading context is
unsupported (only PathClassLoader and DelegateLastClassLoader are
supported).
- variable: if it changes over time, form one run to another.

In all the above cases the old compilation behavior is preserved for
now.(i.e. the dex file with be compiled with SKIP_SHARED_LIBRARY_CHECK)

(cherry picked from commit f1ff36f0f9)

Bug: 38138251
Test: runtest -x
services/tests/servicestests/src/com/android/server/pm/dex/
      adb shell cmd package compile -f -m quicken ^Csecondary-dex
com.google.android.gms

(cherry picked from commit 3bec94d78b)

Merged-In: Ie8b78c7c0d5de43733b3d116f8dcb3a65324cca8
Change-Id: Ie8b78c7c0d5de43733b3d116f8dcb3a65324cca8
2017-11-01 13:07:34 -07:00
Calin Juravle
caed6000be Add a command line option to optimize individual splits
The new option is "--split SplitName" and applies to "adb shell cmd
package compile" command.

Usage example:
adb shell cmd package compile -m speed --split split_feature_a.apk
com.android.cts.classloadersplitapp

(cherry picked from commit b6f844d28c)

Bug: 38138251

Test: adb install-multiple CtsClassloaderSplitApp.apk
CtsClassloaderSplitAppFeatureA.apk CtsClassloaderSplitAppFeatureB.apk
      adb shell cmd package compile -m speed --split split_feature_a.apk
com.android.cts.classloadersplitapp
      check the status of split_feature_a
      runtest -x
services/tests/servicestests/src/com/android/server/pm/dex/DexoptOptionsTests.java

Merged-In: I579bb12fa6699f99cd3824f185bd9352fb8007c5
Change-Id: I579bb12fa6699f99cd3824f185bd9352fb8007c5
2017-10-31 14:51:57 -07:00
Calin Juravle
dea3fd8cf1 Refactor the arguments passed to dexopt invocations
Wrap the arguments passed to the various performDexopt calls into the
DexoptOptions object.

This will make adding extra arguments (like compile only a split) much
easier and avoid extending quite a few internal methods.

(cherry picked from commit 1d0e83d2ce)

Bug: 38138251
Test: adb shell cmd package compile ....
      adb shell cmd package bg-dexopt-job ...
      install new apps and check that they compiled
      runtest -x
services/tests/servicestests/src/com/android/server/pm/dex/DexoptOptionsTests.java

Merged-In: Ia9930edd2dceb7535d6168eceb8e3199c82b6306
Change-Id: Ia9930edd2dceb7535d6168eceb8e3199c82b6306
2017-10-31 14:51:57 -07:00
Shubham Ajmera
3aeca17aa9 Reduce app size by downgrading inactive apps
This will trigger when the device will have low space.
Active apps here refer to the apps which were either active
in foregrond or in background and also used by other packages.
Apps which are inactive for X days downgraded to verify. X is
determined by sysprop pm.dexopt.unopt_after_inactive_days

If the system properties are not set, no effect will take place.

The above operations will take place in background dexopt service.
If user uses the app again, it will again be speed-compiled when
background dexopt service starts next time.

(cherry picked from commit 246dccf932)

Bug: 36598475
Test: manual
* Remove the check in the code that allows downgrade only when
  the space is low on the device.
* adb root
* Set pm.dexopt_unopt_after_inactive_days to 600
* Make sure the current time of the device is correctly set
* Install 2 non system apps - B, C
* Downgrade B to extract
* Upgrade a system apps to speed-profile - E
* Downgrade a system app to quicken - G
* adb shell cmd package bg-dexopt-job

Expected Results:
* Extract - B
* Verify - C
* There should not be any entries for apps E an G
  in dalvik_cache

Merged-In: I68f9f617d6722a7ba8b00aa2181cb38a165cfc51
Change-Id: I68f9f617d6722a7ba8b00aa2181cb38a165cfc51
2017-10-31 14:51:57 -07:00
nharold
8d306cd78a Merge changes from topic "re-enable-ipsec"
am: 680525c742

Change-Id: Ia1d1f3981a9dd1eb8f60631d318211daf135d575
2017-09-26 22:13:20 +00:00
nharold
680525c742 Merge changes from topic "re-enable-ipsec"
* changes:
  Re-Expose IpSecService API Surface
  Re-Enable Starting of the IpSecService
2017-09-26 21:46:39 +00:00
Christopher Schuster
928b7cba47 Merge "fixed handling of data URI schemes in Intent.toUri"
am: c3d3cf5666

Change-Id: Id4b8ef16f7a428e6c3d8b382387cf575d05926ad
2017-09-22 15:02:03 +00:00
Christopher Schuster
42c3a6e6af fixed handling of data URI schemes in Intent.toUri
Data URIs in intents can use schemes with digits and some special
characters (see RFC 2396 and 3986). This patch fixes how these
data URIs are handled by Intent.toUri to support these schemes.

Bug: 63930680
Test: run cts android.content.cts.IntentTest#testUris
Change-Id: I0dbb72325f59f372abba83be9e14c59d5665a053
Signed-off-by: Christopher Schuster <levjj@google.com>
2017-09-21 15:20:16 +00:00
Nathan Harold
d999d225a8 Re-Expose IpSecService API Surface
Note, This reverts commit bd62d6aff2.

Bug: 64800246
Test: compilation
Change-Id: I709d4c476647cfe9f6b982fc373f8d76018b3922
2017-09-12 19:25:13 -07:00
Julia Reynolds
222941267d Merge "Optionally append managed service approvals" into oc-dr1-dev
am: 445a6d42ef

Change-Id: I7a39822f2bef0838cfe63d44646f513539d90c5c
2017-08-17 00:54:37 +00:00
TreeHugger Robot
445a6d42ef Merge "Optionally append managed service approvals" into oc-dr1-dev 2017-08-17 00:31:42 +00:00
Julia Reynolds
00004c44d7 Optionally append managed service approvals
If the backup comes from a pre O device, don't wipe
preexisting managed service grants (which were introduced in O).


Merged-In: I142df7acb11309bc4f5f185e45a1f91f86d0334a
Merged-In: Ie569972dc0d076718a3a9c59e1ebd942c5bfa987
Test: manual, restore from N to O DR
Bug: 64232609
Change-Id: Ieec2c821d9a088c69a5bc143acf8537ba300202d
2017-08-16 20:58:49 +00:00
Kevin Hufnagle
0df906d279 Merge "docs: Updated ShortcutManager API reference guide." into oc-dev am: 80376a98a5
am: b9db19de6a

Change-Id: Ie9c9c24f0e7dc8423633e61f72473824d8ed83d1
2017-08-16 19:16:12 +00:00
Kevin Hufnagle
d6d6d2cf79 Merge "docs: Updated ShortcutManager API reference guide." into oc-dev
am: 80376a98a5

Change-Id: Iae8814e722f7861ecd96980d16c06a676c6ad1dc
2017-08-16 19:01:36 +00:00
Kevin Hufnagle
b9db19de6a Merge "docs: Updated ShortcutManager API reference guide." into oc-dev
am: 80376a98a5

Change-Id: I651865861984671961a44a21f72246f8e0ae12b8
2017-08-16 19:01:35 +00:00
Ian Pedowitz
4e9806c4b4 Revert "Time zone update API classes"
This reverts commit fe6ec56cce.

Fixes: 64606807
Test: Grab the cts binaries(android-cts.zip) from OC Release
Test: Extract and from android-cts/tools directory, launch ./cts-tradefed
Test: On the DUT with CL cherrypicked, run the below(will run this test on both abi's):
Test: run cts -m CtsPermission2TestCases -t android.permission2.cts.PermissionPolicyTest#testPlatformPermissionPolicyUnaltered --skip-connectivity-check --skip-preconditions --serial <device serial>
Test: android.permission2.cts.PermissionPolicyTest#testPlatformPermissionPolicyUnaltered doesn't fail for android namespace:android.permission.TRIGGER_TIME_ZONE_RULES_CHECK
Change-Id: I238e2b6fa7ce60e6a8cbfebcd13e5e4c596834af
Merged-In: I31b55e88072dd73055cb3d8cf252be6eac920322
2017-08-12 01:21:10 +00:00
Kevin Hufnagle
e7cbfa995d docs: Updated ShortcutManager API reference guide.
The guide now contains supplemental, rather than duplicate,
information relative to the "App Shortcuts" guide, available at
https://developer.android.com/guide/topics/ui/shortcuts.html

Test: make ds-docs -j8

Bug: 64401518
Change-Id: Iefa34299a9765eb5d853da71d9197a0edb346026
2017-08-07 20:01:31 -07:00
Jeff Sharkey
d1dd2c662e Fix NPE when reading icon for removed session.
The underlying session may have been destroyed before we go back to
read out the icon.

Test: builds, boots
Bug: 63795821
Change-Id: I16eb32c74a0e3b1d0605392878d65f28437006a6
2017-08-02 15:36:12 +00:00
Bryce Lee
658d984f04 Do not call onConfigurationChanged for appBound position changes.
Since appBounds encodes both dimensions and positions, movement will
cause a diff change. This happens in situations where the dimensions
stay constant, such as dragging a PiP window around.

To avoid flooding the client side with configuration changes, this CL
checks whether the new configuration is equivalent to the existing
configuration with the exception of the position of the appBounds
before sending to the registered callbacks.

Change-Id: I8fbc94458fd9ed3b39494c3587f25e704ec02a7d
Fixes: 63927944
Test: bit FrameworksServicesTests:com.android.server.wm.AppBoundsTests
Test: go/wm-smoke
2017-07-31 08:46:00 -07:00
Bryce Lee
5b76ce1b2b Merge "Remove rotation and app bounds from Configuration diff." into oc-dr1-dev 2017-07-28 17:57:09 +00:00
Svetoslav Ganov
436b901dbb Report permission flags for all protections based on SDK
am: adb8c522a8

Change-Id: Ia30269ec2097d5978ae3e0b3930a38b3f4441ea4
2017-07-28 16:42:59 +00:00
Svetoslav Ganov
fc862c9f86 Report permission flags for all protections based on SDK
am: adb8c522a8

Change-Id: I259df147b8345f6bdba5a1ed31d01d3c42e90518
2017-07-28 16:42:09 +00:00
Bryce Lee
0e4a6dfb3f Remove rotation and app bounds from Configuration diff.
The presence of these new flags leads to issues with application that
do not expect their presence. Since these flags can appear at
critical times, such as on orientation change, these issues are
brought to the surface often.

This CL remedies this problem by first removing the rotation
property. It is not used and the original issue of orientation and
Configuration alignment has been addressed. For app bounds, the CL
reverts the behavior back to identifying diffs as a screen size
change.

Fixes: 64004417
Test: bit FrameworksServicesTests:com.android.server.wm.AppBoundsTests
Test: go/wm-smoke

Change-Id: I1fabb564dfb5c13d897336708523cf7cd5099fa0
2017-07-28 07:49:01 -07:00
Svetoslav Ganov
adb8c522a8 Report permission flags for all protections based on SDK
We added a couple of protection flags that also apply to
normal and dangerous permissions. These flags are folded
in the protection level breaking apps that directly and
compare against the protection constants. Apps that target
older than O SDK don't get protection flags folded into
the protection level.

Test: All permission tests pass
      Added a new test to ensure no protection flags reported
      for normal and dangerous permissions

Change-Id: I87b10a7695d8ecfa7156525d6f3d101fc0639513
bug:62755026
2017-07-28 05:46:53 +00:00
Bart Sears
076d6f7669 Revert "Report permission flags for all protections based on SDK"
am: 784b56e1e6

Change-Id: Ice7dde53c5613f48d013424a7e99203fd854e532
2017-07-28 05:17:52 +00:00
Bart Sears
1a5a9be9ad Revert "Report permission flags for all protections based on SDK"
am: 784b56e1e6

Change-Id: I80086249438fff193dc64d9c4d1a6b1468f8c4a1
2017-07-28 05:17:48 +00:00
Bart Sears
784b56e1e6 Revert "Report permission flags for all protections based on SDK"
This reverts commit 852cf98cb8.

Change-Id: I62763bf85ec95a02a245c6b503aa34bb0e9d997a
2017-07-28 05:05:38 +00:00
Svetoslav Ganov
3cf283558a Report permission flags for all protections based on SDK
am: 852cf98cb8

Change-Id: I6e87c8f40fa466f2a50f41549be41ea4fb598824
2017-07-28 02:49:30 +00:00
Svetoslav Ganov
546320e506 Report permission flags for all protections based on SDK
am: 852cf98cb8

Change-Id: Id83fa00277f6262139024eee46312bf18cd7b691
2017-07-28 02:48:37 +00:00
Svetoslav Ganov
852cf98cb8 Report permission flags for all protections based on SDK
We added a couple of protection flags that also apply to
normal and dangerous permissions. These flags are folded
in the protection level breaking apps that directly and
compare against the protection constants. Apps that target
older than O SDK don't get protection flags folded into
the protection level.

Test: All permission tests pass
      Added a new test to ensure no protection flags reproted
      for normal and dangerous permissions

bug:62755026

Change-Id: I72547b0146e6b6919803e33ff64b7208c4a255ad
2017-07-28 01:46:04 +00:00
Bryce Lee
512e5d1b9b Merge "Do not report app bound differences as a Configuration change." into oc-dr1-dev 2017-07-26 14:20:31 +00:00
TreeHugger Robot
906d8f57bf Merge "Don't unbind from the sync adapter before cancelSync()." into oc-dr1-dev 2017-07-25 20:49:39 +00:00
Bryce Lee
600daddb67 Do not report app bound differences as a Configuration change.
App bounds are an internal Configuration field and should not
influence the diff that determines whether the Configuration has
changed. This changelist ensures this by introducing a new flag that
is identified server side and filtered before informing the client
that the configuration has changed.

Change-Id: Ibf1387f73eaa9b39e6213e1a1109c4cd57554e7c
Fixes: 63927944
Test: bit FrameworksServicesTests:com.android.server.wm.AppBoundsTests#testAppBoundsConfigurationDiff
Test: go/wm-smoke
2017-07-25 18:20:29 +00:00
TreeHugger Robot
5bbf44e715 Merge "Persist/pacel # of periodic syncs properly." into oc-dr1-dev 2017-07-22 00:45:24 +00:00
David Friedman
f20c492190 Merge "Docs: Updates guidance about using permissions when accessing OBB expansion files, Bug: 34273998 Test: Ran "make" to verify error-free building." into oc-dev
am: e4d0557334

Change-Id: I931088e43f29707e1ab5d9764a06adbbe5af1d7e
2017-07-21 23:11:16 +00:00
David Friedman
cde37c8836 Merge "Docs: Updates guidance about using permissions when accessing OBB expansion files, Bug: 34273998 Test: Ran "make" to verify error-free building." into oc-dev
am: e4d0557334

Change-Id: If97a3685c4e55ca006d1876a0378a772bf784c2d
2017-07-21 23:11:15 +00:00
David Friedman
e4d0557334 Merge "Docs: Updates guidance about using permissions when accessing OBB expansion files, Bug: 34273998 Test: Ran "make" to verify error-free building." into oc-dev 2017-07-21 23:01:56 +00:00
Makoto Onuki
fdc5723076 Persist/pacel # of periodic syncs properly.
(Note it shouldn't be persisting parceled data in the first place.  There's
already a bug filed for that.)

Bug 63935632
Test: manaul test

Change-Id: I5385caa6cd0663c7e13db0256b2c1027abe6c3a1
2017-07-21 15:30:35 -07:00
Makoto Onuki
6a6ae04bd2 Don't unbind from the sync adapter before cancelSync().
- Also remove the unused method from ISyncAdapter.aidl

Bug: 63773598
Test: Manual test
Change-Id: Ifb2fc520759e83ad961032f9e217100e038e1a8c
2017-07-21 11:44:00 -07:00
Dave Friedman
cfe508824f Docs: Updates guidance about using permissions when accessing OBB
expansion files,
Bug: 34273998
Test: Ran "make" to verify error-free building.

Change-Id: Ic2022bd8bd78e2f6077d6ee6807fbbda7214737a
2017-07-19 10:08:49 -07:00
Rob Carr
cee8098178 Merge "Fix rotation animation selection." into oc-dr1-dev 2017-07-18 19:31:00 +00:00
Robert Carr
427ba4ff55 Fix rotation animation selection.
The default manifest value needs to be unspecified, not rotate,
as rotate overrides the LayoutParams specified value.

Bug: 63151981
Test: Manual from bug. go/wm-smoke.
Change-Id: I2ad6e3fdd06eeef0166bbe09d07b57cc45ed6e50
2017-07-17 18:37:06 -07:00
Benjamin Miller
84a4d3de65 Merge "Docs-change: clarification of LauncherApps.getApplicationInfo()" into oc-dev
am: d726ff988c

Change-Id: I031f226a4324521a8940453c96da870a49767233
2017-07-17 22:39:28 +00:00
Benjamin Miller
8322920a7c Merge "Docs-change: clarification of LauncherApps.getApplicationInfo()" into oc-dev
am: d726ff988c

Change-Id: I42a62feffca60e8beb75e991ea0b6545a2813233
2017-07-17 22:37:35 +00:00
Benjamin Miller
7afa84c373 Docs-change: clarification of LauncherApps.getApplicationInfo()
Staged at: go/dac-stage/reference/android/content/pm/LauncherApps.html#getApplicationInfo(java.lang.String, int, android.os.UserHandle)

Test: make ds-docs and output staged
Bug: 38024981
Change-Id: I9f256d675433457b7c85fa111ed87d1147f1f2bc
2017-07-17 18:35:38 +00:00
Bryce Lee
fa62d79a02 Merge "Do not use rotation as indicator to relaunch from config change." into oc-dr1-dev 2017-07-13 18:28:09 +00:00
Bryce Lee
22571db5a6 Allow max aspect ratio to be specified by meta-data tag.
This changelist identifies aspect ratios set via meta-data tags on
the activity or application and applies them to the proper scope.
Values specified via styled attribute take precedence, and values
specified by the activity take priority over values in at the
application level.

Fixes: 63386222
Test: cts/hostsidetests/services/activityandwindowmanager/util/run-test CtsAppTestCases android.app.cts.AspectRatioTests
Test: go/wm-smoke
Change-Id: I0d8d6b2778e7fc12bb9feb85c651e5ec22927f5f
2017-07-12 10:16:50 -07:00
Bryce Lee
248fbb180d Do not use rotation as indicator to relaunch from config change.
Rotation is a hidden member inside configuration that should not
influence configuration related logic. This CL ensures that we do
not consider changes to the rotation as grounds for relaunching an
activity.

Change-Id: I9e6d4a1a75fd3ee3beb63f307433e9c3fcfd6dd4
Fixes: 63533208
Test: go/wm-smoke
Test:cts/hostsidetests/services/activityandwindowmanager/util/run-test CtsServicesHostTestCases android.server.cts.ActivityManagerConfigChangeTests
2017-07-10 16:33:52 -07:00
Bryce Lee
649053810f Merge "Add app bounds to Configuration#compareTo." into oc-dr1-dev 2017-07-10 14:21:37 +00:00