Commit Graph

11573 Commits

Author SHA1 Message Date
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
6214f1bc53 Change the location of current profiles for secondary dex files
Move the secondary dex profiles inside the oat folder. This makes it
easier to clean them up and "protects" them against apps which may delete
unknown files from their directories (e.g. search).

(cherry picked from commit eec18f41e2)

Bug: 62336157
Test: Manual: boot the device, use the app, check the profiles are
collected in the new location.

Merged-In: I2fbce7591589d162775e4652b12e4698083adcff
Change-Id: I2fbce7591589d162775e4652b12e4698083adcff
2017-10-31 15:25:00 -07:00
Jeff Sharkey
1285cfd48f Change storage migration to use quota APIs.
New quota APIs are much faster than trying to measure manually, and
removing this last user of calculateDirectorySize() means we can
remove it once and for all.

(cherry picked from commit c8b29ac6f0)

Bug: 36056324
Test: builds, boots
Merged-In: Ibdf1ee4e8885680e106df6a9269b6309ddc61af8
Change-Id: Ibdf1ee4e8885680e106df6a9269b6309ddc61af8
2017-10-31 09:50:50 -07:00
Neil Fuller
b755291e65 Be more explicit about users
Be more explicit about users executing processes in the time
zone updates code.The code was already running everything as the
system user but now that's more explicit / by design.

To service unit tests:
make -j30 FrameworksServicesTests
adb install -r -g "${ANDROID_PRODUCT_OUT}/data/app/FrameworksServicesTests/FrameworksServicesTests.apk"
adb shell am instrument -e package com.android.server.timezone -w com.android.frameworks.servicestests \
  "com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner"

Bug: 64111659
Test: Unit tests: See above
Test: Manual testing installing updates as secondary device user
Test: PTS: run pts -m PtsTimeZoneTestCases
Change-Id: Idb754f3e1aa3830ba1ada8ef5740f9f7340f03d5
Merged-In: Idb754f3e1aa3830ba1ada8ef5740f9f7340f03d5
(cherry picked from commit 1281f39f86)
2017-10-25 14:00:24 +01:00
Charles He
692b55390f Merge changes from topic "always-on-vpn"
am: cc15c7f8c1

Change-Id: I7391ce7ecab4f8e73912f420d49150ed7210ea6c
2017-09-19 08:01:45 +00:00
Charles He
5da5ae3b96 Opt-out for always-on VPN: rename API.
Rename the opt-out flag in AndroidManifest to
SERVICE_META_DATA_SUPPORTS_ALWAYS_ON
as directed by the API Council.

Bug: 64331776
Bug: 36650087
Test: runtest --path java/com/android/server/connectivity/VpnTest.java
Change-Id: I24326fad7a89083a2409134640bda81ee0359d08
Merged-In: I24326fad7a89083a2409134640bda81ee0359d08
(cherry picked from commit c57a01c166)
2017-09-08 10:47:34 +01:00
Charles He
a0a87e8108 Opt-out for always-on VPN
Always-on VPN is a feature introduced in N. Since then, all VPN apps
targeting N+ are assumed to support the feature, and the user or the DPC
can turn on / off always-on for any such VPN app. However, a few VPN
apps are not designed to support the always-on feature. Enabling
always-on for these apps will result in undefined behavior and confusing
"Always-on VPN disconnected" notification.

This feature provides a new manifest meta-data field through which a VPN
app can opt out of the always-on feature explicitly. This will stop the
always-on feature from being enabled for the app, both by the user and
by the DPC, and will clear its existing always-on state.

A @hide API is provided to check whether an app supports always-on VPN.
Documentation is updated to reflect the behavior change.

Bug: 36650087
Test: runtest --path java/com/android/server/connectivity/VpnTest.java
Test: cts-tradefed run cts --module CtsDevicePolicyManagerTestCases --test 'com.android.cts.devicepolicy.MixedDeviceOwnerTest#testAlwaysOnVpnUnsupportedPackage'
Test: cts-tradefed run cts --module CtsDevicePolicyManagerTestCases --test 'com.android.cts.devicepolicy.MixedDeviceOwnerTest#testAlwaysOnVpnUnsupportedPackageReplaced'
Test: cts-tradefed run cts --module CtsDevicePolicyManagerTestCases --test 'com.android.cts.devicepolicy.MixedProfileOwnerTest#testAlwaysOnVpnUnsupportedPackage'
Test: cts-tradefed run cts --module CtsDevicePolicyManagerTestCases --test 'com.android.cts.devicepolicy.MixedProfileOwnerTest#testAlwaysOnVpnUnsupportedPackageReplaced'
Test: cts-tradefed run cts --module CtsDevicePolicyManagerTestCases --test 'com.android.cts.devicepolicy.MixedManagedProfileOwnerTest#testAlwaysOnVpnUnsupportedPackage'
Test: cts-tradefed run cts --module CtsDevicePolicyManagerTestCases --test 'com.android.cts.devicepolicy.MixedManagedProfileOwnerTest#testAlwaysOnVpnUnsupportedPackageReplaced'

Change-Id: I477897a29175e3994d4ecf8ec546e26043c90f13
Merged-In: I477897a29175e3994d4ecf8ec546e26043c90f13
(cherry picked from commit 3673863f3b)
2017-09-08 10:18:36 +01:00
Mårten Kongstad
96e763fe71 Merge changes I7218f17a,I96b7340a
am: 111c955d1d

Change-Id: I64cb964b751561e87115976866646b1db3858e14
2017-08-31 21:44:25 +00:00
Mårten Kongstad
7a242216a9 ResourcesManager: correct @NonNull -> @Nullable
To clear all overlay packages, the caller of
ResourcesManager#applyNewResourceDirsLocked will pass in null as the
second argument. Fix typo where the argument's annotation misspelled
@Nullable as @NonNull.

Change-Id: I7218f17ac8f121924e722d3e00d3ebdc4d6f3382
2017-08-31 14:50:10 +02:00
Calin Juravle
1dcfb7e085 Merge "Update DexLoadReporter to comply with the new reporting API" am: 89d087886d am: 8a9e43f1bf
am: 4740e015b9

Change-Id: I37651233e09edb39011be2f022dad4b533b31c37
2017-08-08 17:27:43 +00:00
Calin Juravle
4740e015b9 Merge "Update DexLoadReporter to comply with the new reporting API" am: 89d087886d
am: 8a9e43f1bf

Change-Id: I6d7770a61fdeb3962342e6b46a9af67126b623ba
2017-08-08 17:21:10 +00:00
Calin Juravle
8a9e43f1bf Merge "Update DexLoadReporter to comply with the new reporting API"
am: 89d087886d

Change-Id: If94d3ecb40eef29acb0ab6709de23b37a722119b
2017-08-08 17:13:06 +00:00
Lucas Dupin
89f58e156e Merge "Multi-user and WallpaperColors" into oc-dr1-dev
am: e09e5ef21b

Change-Id: Idb06a8e04ac1cb9bf73fe168217d5369bb412b4f
2017-08-03 22:56:54 +00:00
Calin Juravle
cd8fbd25d3 Update DexLoadReporter to comply with the new reporting API
This is a partial cherry pick of commit
3bec94d78b.

It is partial because it only adapts DexLoadReporter to use the new
reporter BaseDexClassLoader.Reporter API.

Bug: 38138251
Test: make
Merged-In: I2486522fb811f9fc58a44b92642f43a41e7d5bac

(cherry picked from commit 3bec94d78b)

Change-Id: I4c41dbeb8a9297caac8b0eb936cf74832569f33e
2017-08-03 15:28:36 -07:00
Lucas Dupin
26fb43c034 Multi-user and WallpaperColors
Test: set different wallpapers for different users and switch between them.
Test: re-ran cts tests at cts/tests/app/src/android/app/cts/WallpaperManagerTest.java
Change-Id: Ic06d1dc6db26869a2948590863ca9b8ac81c630e
Merged-In: Ic06d1dc6db26869a2948590863ca9b8ac81c630e
Fixes: 63513694
2017-08-02 23:18:26 +00:00
Andrew Solovay
517927fa1a Merge "docs: Noted that JobIntentService is usually a better choice" into oc-dev am: d71cc3b72e
am: d4b1a0985b

Change-Id: I18839e2c5c1f64639a7920d64f3271cd2d6dc1a4
2017-08-01 21:31:58 +00:00
Andrew Solovay
9e1b7759dc Merge "docs: Noted that JobIntentService is usually a better choice" into oc-dev
am: d71cc3b72e

Change-Id: I8130d71136078d17196e198db6ff36f7f8489a5c
2017-08-01 21:21:58 +00:00
Andrew Solovay
d4b1a0985b Merge "docs: Noted that JobIntentService is usually a better choice" into oc-dev
am: d71cc3b72e

Change-Id: Ifc47ddab2329814e39022b51510f4264937a3c04
2017-08-01 21:21:01 +00:00
Andrew Solovay
494f1a4dfa docs: Noted that JobIntentService is usually a better choice
Since IntentService is subject to the O background restrictions,
most devs are better off switching to the new JobIntentService.
(I assume IntentService is not actually deprecated; if it is, tell
me and I'll change this to a @deprecated tag!)

See first comment for doc stage location.

Test: make ds-docs
Bug: 64159987
Change-Id: I83a53d1e6336c2134bf4c61bedd2ae42cd80493a
2017-07-31 19:41:01 -07:00
Adam Lesinski
630faa085a Merge "Remove extraneous invalidate call that unregisters AssetManagers" into oc-dr1-dev
am: defdb1fd70

Change-Id: I16587768d92201f8d4d083b70ae972cca47e8b5c
2017-07-31 22:17:26 +00:00
Adam Lesinski
defdb1fd70 Merge "Remove extraneous invalidate call that unregisters AssetManagers" into oc-dr1-dev 2017-07-31 22:08:30 +00:00
Bryce Lee
05865fb40a Merge "Do not call onConfigurationChanged for appBound position changes." into oc-dr1-dev
am: 33d4702a12

Change-Id: I990a3554730cc07440c7d4bc0236e0aeb00e2980
2017-07-31 18:46:20 +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
Adam Lesinski
662153740d Remove extraneous invalidate call that unregisters AssetManagers
We are already taking care of updating AssetManagers affected by
path changes to a running app's ApplicationInfo. There is no need
to invalidate ALL AssetManagers, thereby unregistering them
from ResourcesManager and preventing configuration changes from
reaching them.

Bug: 64004601
Test: manual
Change-Id: I39311ec9b1dfd34eb7025836f75c92e0516bc36b
2017-07-28 16:33:11 -07:00
Svetoslav Ganov
70ec94fd12 Report permission flags for all protections based on SDK am: adb8c522a8
am: fc862c9f86

Change-Id: Ie08845d6e5afa8f75e1cc5392a1f5c2166d06d20
2017-07-28 16:54:06 +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
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
20c93bfe75 Revert "Report permission flags for all protections based on SDK" am: 784b56e1e6
am: 1a5a9be9ad

Change-Id: Iac6546b48308836b7a4bf41295a363032326d990
2017-07-28 05:26:30 +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
31cab0e52f Report permission flags for all protections based on SDK am: 852cf98cb8
am: 3cf283558a

Change-Id: I09b1f8573c6e2103fa66ae56352173e64b5ed8b7
2017-07-28 02:58:37 +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
Geoffrey Pitsch
b65450e135 Merge "Remove ability to downgrade importance of existing channel." into oc-dr1-dev
am: 0d5c1490ce

Change-Id: Iff93082f1d38becfc498fd7ba0d417ed88955c25
2017-07-26 14:39:17 +00:00
Geoffrey Pitsch
0d5c1490ce Merge "Remove ability to downgrade importance of existing channel." into oc-dr1-dev 2017-07-26 14:31:23 +00:00
Geoffrey Pitsch
1556495e28 Remove ability to downgrade importance of existing channel.
Test: runtest systemui-notification
Bug: 63920384
Change-Id: Ic9f5c50c3d2a36ccd4ba9686dad1eb415b559215
2017-07-26 10:27:02 -04:00
Christine Franks
cb03504d21 Merge "DO NOT MERGE - Remove RetailDemoModeServiceInternal" into oc-dr1-dev
am: 4ac942f140

Change-Id: I3d09e6fe436ae1ced8f9ed88e919f1d9bb5e52db
2017-07-26 00:16:28 +00:00
Christine Franks
4ac942f140 Merge "DO NOT MERGE - Remove RetailDemoModeServiceInternal" into oc-dr1-dev 2017-07-26 00:07:14 +00:00
Christine Franks
f66a377785 DO NOT MERGE - Remove RetailDemoModeServiceInternal
Bug: 62712426
Test: make -j100
Change-Id: I0b852aef30a8cadcda08fcff1dcf861aac2a4d7e
2017-07-25 21:16:29 +00:00
Selim Cinek
001956c626 Merge "Removing contents hidden string for public notifications" into oc-dr1-dev
am: 8650c7c0f1

Change-Id: I4dd8cfab340c595181f52659d552bc03f51818ec
2017-07-23 12:57:20 +00:00
TreeHugger Robot
8650c7c0f1 Merge "Removing contents hidden string for public notifications" into oc-dr1-dev 2017-07-23 12:51:43 +00:00
Selim Cinek
499c20f25d Removing contents hidden string for public notifications
We're now only showing the notification header instead of the
repetitive contents hidden string. On Aod, we're still showing
a string however, since without it, it looked too empty.

Test: manual, set sensitive setting on lockscreen, observe notifications
Change-Id: If2bb66b9b3b366715aa68087e5c35cf1cdff3693
Fixes: 63741232
2017-07-20 14:16:13 -07:00
Geoffrey Pitsch
4158c7a215 Merge "Allow apps to downgrade importance in createNotificationChannel" into oc-dr1-dev
am: 3ca605e28c

Change-Id: Ic4e1a653f38cf9e93f8262e55865a907dfbd2c83
2017-07-20 15:41:14 +00:00
Geoffrey Pitsch
3ca605e28c Merge "Allow apps to downgrade importance in createNotificationChannel" into oc-dr1-dev 2017-07-20 15:33:41 +00:00
Selim Cinek
825719bb92 Merge "Reducing bitmap sizes in notifications" into oc-dr1-dev
am: 8ffa981686

Change-Id: I20fbb857570c0e7bb02659b9026b0800d5939bc2
2017-07-19 23:47:16 +00:00
Selim Cinek
8ffa981686 Merge "Reducing bitmap sizes in notifications" into oc-dr1-dev 2017-07-19 23:41:44 +00:00
Selim Cinek
15733d1f85 Reducing bitmap sizes in notifications
Bitmap sizes could be arbitrary large when they were sent
over to the system. We're now reducing them to reasonable
sizes.s

Also fixed that notification bitmaps were not put into
ashmem anymore since it got lost in a refactor.

Test: code inspection
Bug: 62319200
Merged-In: I87db7656e749666b9eab1f67fd497f155c407e18
Change-Id: I87db7656e749666b9eab1f67fd497f155c407e18
2017-07-19 18:06:09 +00:00