Commit Graph

11407 Commits

Author SHA1 Message Date
Benedict Wong
9eee7d3f29 Merge "Set TRANSPORT_PRIMARY for VCN NetworkOffers and NetworkAgents" into sc-dev 2021-07-28 03:37:47 +00:00
Nikita Ioffe
db9892300e Reject non-staged APEX install if there is staged install of same APEX
There is a interesting interaction between staged and non-staged
installs of the same APEX. Let's say an installer staged v1 -> v2 APEX
update, and then does a non-staged update to v3. After device is
rebooted, apexd will apply the staged v1 -> v2 session, silently
downgrading an APEX from v3.

For apks, this problem is solved by storing an expected version. When an
APK session is being applied during boot, Package Manager will check if
the currently installed version is equal to the expected one stored in
the staged session. If they mismatch, an install is failed.
Unfortunately, implementing the same logic in apexd will require a
non-trivial refactoring which is too late to do in S. Instead we are
just going to fail the non-staged installation.

Test: atest StagedInstallInternalTest
Bug: 187864524
Change-Id: I9000f40cede9a324a5059a09deb8eb5be13b21f9
2021-07-22 12:05:41 +01:00
Nikita Ioffe
e501fd8379 Restrict what APEXes different installers can update
* Mainline APEXes can only be updated by a modulesInstaller (an entry
in whitelisted-staged-installer.xml with isModulesInstaller="true")

* The whitelisted-staged-installer.xml file can have only one entry with
isModulesInstaller="true"

* Vendor APEXes can only be updated by an installer defined in the
corresponding entry in vendor-apex-allowlist.xml.

BYPASS_INCLUSIVE_LANGUAGE_REASON=existing occurrences

Test: atest StagedInstallInternalTest
Test: atest GtsStagedInstallHostTestCases
Test: atest CtsRollbackManagerHostTestCases
Test: atest CtsStagedInstallHostTestCases
Bug: 190802380
Change-Id: I729abb5153df079fb6885016a4b41d0acc827e3c
2021-07-21 16:44:42 +01:00
Benedict Wong
8d35744f98 Set TRANSPORT_PRIMARY for VCN NetworkOffers and NetworkAgents
This change sets TRANSPORT_PRIMARY for all NetworkScore objects passed
to ConnectivityService by the VCN. Without this patch, a VCN in safe
mode will never get any NetworkRequests, since the new Policy-based
NetworkRanker always prioritizes a existing satisfier of a network,
regardless of score. However, a higher-priority policy check ensures
that a TRANSPORT_PRIMARY request is used if it exists. This changes the
VCN to utilize that functionality.

Bug: 194122634
Test: atest FrameworksVcnTests
Original-Change: https://android-review.googlesource.com/1772025
Merged-In: I3a298a6c4c594c6e224f3f05764614802c00e9b0
Change-Id: I3a298a6c4c594c6e224f3f05764614802c00e9b0
2021-07-21 02:11:01 +00:00
Mohammad Samiul Islam
b713ec62bb Merge "Test apexd behaves correctly when not in fs-checkpoint mode" into sc-dev 2021-07-20 18:02:29 +00:00
Samiul Islam
6d9107a468 Test apexd behaves correctly when not in fs-checkpoint mode
This CL contains two tests:
1) When fs-checkpoint-mode is false, but fs-rollback-mode is true
2) When both modes are false

Bug: 193648282
Test: atest StagedInstallInternalTest
Change-Id: I9c96296343a7f39a65de9e06e8a07d765f832044
2021-07-19 13:54:57 +01:00
Benedict Wong
0df66631c0 Merge "Ensure VcnGatewayConnection#isQuitting never gets unset after being set" into sc-dev 2021-07-17 02:52:32 +00:00
Benedict Wong
29b3fdd6b6 Ensure VcnGatewayConnection#isQuitting never gets unset after being set
This change ensures that the VcnGatewayConnection can never abort a
quitting command; specifically, if a non-quitting disconnect request is
processed after a quitting disconnect request, the isQuitting value MUST
continue to stay set (as true).

Failure to OR the values results in orphaned VcnGatewayConnection(s),
and the VCN network thrashing.

Additionally reduce verbosity of local logs, to ensure it better
captures failures and logWtf(s)

Bug: 192776413
Test: atest FrameworksVcnTests
Original-Change: https://android-review.googlesource.com/1768623
Merged-In: Iec8dae701838794261957609bae4e270eaa9cdc7
Change-Id: Iec8dae701838794261957609bae4e270eaa9cdc7
2021-07-16 22:30:25 +00:00
Benedict Wong
e53cbf4df3 Limit VCNs to one running at a given time
This change ensures that there is only ever one VCN running at a given
point in time, and that if the device has switched to using a
subscription in a different subscription group, the VCN will immediately
tear down.

This ensures that when on a DSDS device, when the VCN-enabled
subscription is not the default/active subscription, the other
subscription's network will never be outscored by the VCN, and thus get
torn down.

Bug: 190761448
Test: atest FrameworksVcnTests
Test: Manual testing to ensure common functionality
Original-Change: https://android-review.googlesource.com/1767050
Merged-In: I8031fab7502880d38420058451df41f47567c458
Change-Id: I8031fab7502880d38420058451df41f47567c458
2021-07-16 22:03:37 +00:00
Nikita Ioffe
3e62b8f748 Fix PackageManager query API's related to rebootless APEX updates
There were two bugs:

1. In case of the first update, ApexManager removed information about
  pre-installed version of the APEX.
2. After an update, getPackageInfo cache wasn't invalidated, which
  resulted in getPackageInfo returning stale information.

Bug: 193085724
Test: atest ApexManagerTest
Test: atest StagedInstallInternalTest
Change-Id: I6df7b296cd5d83c93524178f1546855747ea6b07
2021-07-12 13:51:11 +00:00
Nikita Ioffe
24e3ed6e78 Treat APEX installs as upgrades
It's not allowed to install a completely new APEX, hence APEX
installations should be treated as upgrades.

This change allows holders of INSTALL_PACKAGE_UPDATES permission to
silently install APEX upgrades.

Bug: 193085724
Bug: 190802380
Test: atest StagedInstallInternalTest
Change-Id: Idde7644122eeae6c444e3520f66ab1546ba7fdf6
2021-07-09 18:25:57 +01:00
TreeHugger Robot
053213b1cb Merge "Add VCN underlying networks" into sc-dev 2021-07-05 01:30:13 +00:00
Tom Natan
b295cc900b Merge "Handle multiple users when adding and rechecking overrides." into sc-dev 2021-07-03 11:56:43 +00:00
Kohsuke Yatoh
0bff2fa4b2 Merge "Remove dependency to real NotoColorEmoji.ttf." into sc-dev 2021-07-03 01:29:45 +00:00
Benedict Wong
d926f329e1 Add VCN underlying networks
This change declares underlying networks for the VCN for the purposes of
app data accounting

Bug: 190620024
Test: atest FrameworksVcnTests
Original-Change: https://android-review.googlesource.com/1750241
Merged-In: Ida2cd5975250604064b0baed00bc7c201ea97c5e
Change-Id: Ida2cd5975250604064b0baed00bc7c201ea97c5e
2021-07-02 19:30:19 +00:00
tomnatan
4d859f35bc Handle multiple users when adding and rechecking overrides.
This is important for multi-user devices that have different
applications or versions installed for each user.

Bug: 190483583
Test: atest FrameworksServicesTests:CompatConfigTest
Test: atest FrameworksServicesTests:OverrideValidatorImplTest
Test: atest FrameworksServicesTests:PlatformCompatTest
Test: atest PlatformCompatGating:PlatformCompatPermissionsTest
Change-Id: I74c061001efbbd9699087e603a580cb2538891ec
2021-07-02 12:25:59 +00:00
Tracy Zhou
6949bcfce7 Merge "Update ReOpenImeWindowTest to be in gestural nav mode" into sc-dev 2021-07-02 01:04:04 +00:00
Kohsuke Yatoh
5ef0ea1d84 Remove dependency to real NotoColorEmoji.ttf.
NotoColorEmoji.ttf has 'by-exception-only' license and should not have
been depended by vts.
This CL swaps it with a fake NotoColorEmoji.ttf font.
testdata/NotoColorEmoji.ttx is based on
cts/tests/tests/text/assets/fonts/samplefont.ttx

Bug: 191914223
Test: atest UpdatableSystemFontTest
Change-Id: If5f57471b492cae1eb35f6d4a4ac0054270b23a3
2021-06-30 16:11:01 +00:00
Tom Natan
e54680b389 Merge "Add INTERACT_ACROSS_USERS_FULL to PlatformCompatChangeRule" into sc-dev 2021-06-30 14:36:35 +00:00
tomnatan
03c15770ed Add INTERACT_ACROSS_USERS_FULL to PlatformCompatChangeRule
Fix: 192123697
Test: atest CtsWindowManagerDeviceTestCases:CompatChangeTests
Change-Id: I6814db76a9020a6e18995a2949646afea0ed47fc
2021-06-30 09:47:36 +00:00
Tracy Zhou
626522d77f Update ReOpenImeWindowTest to be in gestural nav mode
- and update some test assumptions accordingly (live tile)

Bug: 185934639
Test: ReOpenImeWindowTest
Change-Id: If6f40dce174bef5ccc3c3731764607a5826b4762
2021-06-29 23:09:07 -07:00
TreeHugger Robot
99503ca1c0 Merge "Move IoUtils#deleteContents from CorePlatformApi set to framework" into sc-dev 2021-06-28 20:24:34 +00:00
TreeHugger Robot
465da826b1 Merge "Fix dangling NetworkAgent" into sc-dev 2021-06-26 00:12:01 +00:00
Benedict Wong
f07cc3718a Fix dangling NetworkAgent
This change fixes the potential for a networkAgent to be left dangling,
due to a situation where a VcnGatewayConnection shuts down, but fails to
unregister it's NetworkAgent.

The root cause was that the NetworkAgent was not unregistered when
moving to the DisconnectedState from the RetryTimeoutState, and the new
state assumed that there was no NetworkAgent, and thus failed to close
it when disconnecting.

Thus, this change ensures that the NetworkAgent is closed before moving
to the DisconnectedState. Additionally, it adds safety-checks to
onQuitting(), ensuring that if all else fails, these fields are cleaned
up.

Lastly, this change adds the specific gateway reference to facilitate
future debugging of issues such as this where there is potential for
duplicate networks, or gateway connections.

Bug: 191707296
Test: atest FrameworksVcnTests
Change-Id: I84cd43a0c136662f5c2d229650f1f5f889e6f144
Merged-In: I84cd43a0c136662f5c2d229650f1f5f889e6f144
(cherry picked from commit 7207a83ca8)
2021-06-25 15:34:22 -07:00
Mohammad Samiul Islam
d8244c55fd Merge "Update the session object with the error msg from ApexSessionInfo" into sc-dev 2021-06-24 13:04:13 +00:00
Samiul Islam
6473c8ea19 Update the session object with the error msg from ApexSessionInfo
Now that apexd returns an error message with details about why APEX
activation has failed, we can append it to session object's error
message.

Bug: 178192690
Test: atest
StagedInstallInternalTest#testApexActivationFailureIsCapturedInSession

Change-Id: Id2d1df7f86ca85b044cfa15990eae548a176882b
2021-06-24 11:24:39 +01:00
Yan Yan
bfeb5980f2 Include IkeTunnelConnectionParams in #hashCode and #equals
This commit includes IkeTunnelConnectionParams in
VcnGatewayConnectionConfig#hashCode and
VcnGatewayConnectionConfig#equals.

This commit fixes the issue that VcnGatewayConnection was not
being restarted as expected.

Bug: 191317512
Test: atest FrameworksVcnTests (new tests added)
Test: atest CtsVcnTestCases
Original-Change: https://android-review.googlesource.com/1742657
Merged-In: I70182f9b645e55eced1e0a048a1bd87778c1c0f6
Change-Id: I70182f9b645e55eced1e0a048a1bd87778c1c0f6
2021-06-23 23:38:16 +00:00
James O'Leary
6aad992ea5 Merge "Update serialization of WallpaperColors" into sc-dev 2021-06-22 02:48:57 +00:00
Santiago Etchebehere
3af6019b81 Update serialization of WallpaperColors
Do not assume mMainColors and mAllColors contain the same
color since recent changes modified that.
Update equals and hashCode as well to account for this.

Bug: 191391779
Bug: 191374703
Test: atest WallpaperColorsTest
Change-Id: I8c7775055a2360ec3a91cee76a42d14a143ec7fb
2021-06-18 16:56:30 -07:00
Cody Kesting
1dba7e09df Update Mobile Data State on subscription changes.
This CL ensures that Vcn instances refresh their mobile data state
when they receive a new TelephonySubscriptionSnapshot. A new snapshot
may contain different subId -> subGroup mappings, which can affect
whether a Vcn instance's subGroup has mobile data enabled or not. This
in turn can change which VcnGatewayConnections are brought up by the
Vcn.

Bug: 191394092
Test: atest FrameworksVcnTests CtsVcnTestCases
Original-Change: https://android-review.googlesource.com/1740514
Merged-In: Ib59b4ed7900a177b17ed4a6e197e271b10937f65
Change-Id: Ib59b4ed7900a177b17ed4a6e197e271b10937f65
2021-06-18 17:35:48 +00:00
Nikita Iashchenko
c48554facc Move IoUtils#deleteContents from CorePlatformApi set to framework
As a part of internal core libraries cleanup move usages of
IoUtils#deleteContents from CorePlatformApi set to framework.

Bug: 154796679
Test: m update-api
Merged-In: If7037029026b6753ab64be09aa52c40e04d5c7b1
Change-Id: If7037029026b6753ab64be09aa52c40e04d5c7b1
2021-06-17 20:22:27 +01:00
TreeHugger Robot
263fe8886e Merge "Allow MANAGE_TEST_NETWORKS to register and get VCN policies." into sc-dev 2021-06-15 00:41:54 +00:00
Kohsuke Yatoh
7adad678e0 Merge "Read font attributes from buffer." into sc-dev 2021-06-14 20:53:59 +00:00
Cody Kesting
5a1961ac48 Allow MANAGE_TEST_NETWORKS to register and get VCN policies.
This CL updates VcnManagementService to allow permission
MANAGE_TEST_NETWORKS to register/unregister VCN policy listers as
well as apply VCN policies. Previously, only permission
NETWORK_FACTORY was allowed to perform this operations.

Bug: 189125789
Test: atest FrameworksVcnTests CtsVcnTestCases
Change-Id: I6ad3a58f4ef87d931917fbd772a810af81b27da1
Merged-In: I6ad3a58f4ef87d931917fbd772a810af81b27da1
(cherry picked from commit f658c7f394)
2021-06-14 16:17:03 +00:00
TreeHugger Robot
506284e2f9 Merge "Move tests with reboot to @LargetTest suite" into sc-dev 2021-06-14 06:12:36 +00:00
Samiul Islam
23e0755152 Move tests with reboot to @LargetTest suite
Bug: 190759634
Test: atest StagedInstallInternalTest
Change-Id: I903052f7178a6800c29164012b2e03aef357c982
2021-06-11 11:47:24 +00:00
John Reck
760051854e Improve picture capture debug path
* Fixes hardware bitmap capture
* Fixes mutable bitmap capture (no flickering)
* Adds basic single-frame LRU cache to avoid
  repeated readbacks of GPU resources
* Does up-front readback of GPU resources
* Moves serialization off RenderThread again thanks
  to up-front readback avoiding needing GPU access
  off-thread
* Reduces RAM usage & improves performance by serializing
  directly to output stream instead of first copying to
  a byte[]

Bug: 174223722
Test: PictureCaptureDemo mirrors the content
Change-Id: If7ec208b61d5b917e82087cc312880fc5a38c943
2021-06-11 01:52:14 +00:00
Kohsuke Yatoh
a3f5f22cbc Read font attributes from buffer.
minikin::Font::typeface() is expensive because it will open the font file.
Font attribute getters should avoid calling it.

Bug: 188201287
Test: atest UpdatableSystemFontTest
Test: atest CtsGraphicsTestCases:FontTest
Test: atest CtsGraphicsTestCases:SystemFontsTest
Change-Id: Ic8554f6dfacbe27ddfea6b375633c96bced2cc09
2021-06-10 21:02:24 +00:00
Benedict Wong
c52419c68a Merge "Remove underlying network caps" into sc-dev 2021-06-07 17:24:45 +00:00
Nataniel Borges
a50b03521f Merge "Promote stable flicker tests (ime)" into sc-dev 2021-06-07 12:56:31 +00:00
Nataniel Borges
128a9fdbcb Merge "Promote stable flicker tests (app launch)" into sc-dev 2021-06-07 12:56:23 +00:00
Nataniel Borges
9ac4eb345a Merge "Promote stable flicker tests (rotation)" into sc-dev 2021-06-04 15:32:49 +00:00
Nataniel Borges
fb8237605a Promote stable flicker tests (ime)
The tests have been stable since last week when the underlying bugs were closed.

Bug: 185401242
Bug: 185400889
Test: atest FlickerTests:com.android.server.wm.flicker.ime
Change-Id: I8cea435a9fa295626c45d9d11549c1a4d4f4e63b
2021-06-04 17:05:11 +02:00
Nataniel Borges
b77a5fb78a Promote stable flicker tests (app launch)
The tests have been stable since last week when the underlying bugs were closed.

Bug: 185401242
Bug: 185400889
Test: atest FlickerTests:com.android.server.wm.flicker.launch
Change-Id: I8ef26ac7144766f7269bef2589842e07d098efc3
2021-06-04 16:26:32 +02:00
Nataniel Borges
f420024bf5 Promote stable flicker tests (rotation)
The tests have been stable since last weeks when the underlying bugs were closed.

Bug: 185401242
Bug: 185400889
Test: atest FlickerTests:com.android.server.wm.flicker.rotation
Change-Id: I4aa13016f214f99bcff5adcd98e71096eacada2d
2021-06-04 16:04:56 +02:00
Nataniel Borges
b94ab5c28f Promote stable flicker tests (app close)
The tests have been stable since last weeks when the underlying bugs were closed.

Bug: 185401242
Bug: 185400889
Test: atest FlickerTests:com.android.server.wm.flicker
Change-Id: I6c99e84f0da01c122d8ff6a28eebbdb9bcc6582a
2021-06-04 15:23:54 +02:00
Benedict Wong
4ab47decd6 Remove underlying network caps
This change removes unused fields in the persistable bundle and
VcnGatewayConnectionConfig classes to ensure future flexibility.

Bug: 182219992
Test: atest FrameworksVcnTests
Change-Id: Ic2fec8a87fd19a1780333c61759c4092598d349e
Merged-In: Ic2fec8a87fd19a1780333c61759c4092598d349e
(cherry picked from commit 1f06b95c62)
2021-05-25 23:17:58 +00:00
Benedict Wong
211f7f9e20 Merge changes I5ce7fe05,I2d5dc5b9,Ibcc4bdc0 into sc-dev
* changes:
  Add additional dump information for UnderlyingNetworkTracker
  Copy up/downstream bandwidth and TCP buffer sizes from underlying
  Prevent concurrent modification exceptions in VcnManagementService
2021-05-25 16:43:51 +00:00
Benedict Wong
9d92b77ad7 Copy up/downstream bandwidth and TCP buffer sizes from underlying
This change copies the relevant pieces of information used to tune the
system for performance

Bug: 188943592
Test: atest FrameworksVcnTests
Change-Id: I2d5dc5b9000fa9d0da9d34772b3704110694c526
2021-05-24 17:23:04 -07:00
TreeHugger Robot
608a439238 Merge "Split flicker tests into groups" into sc-dev 2021-05-22 09:44:36 +00:00