Commit Graph

19792 Commits

Author SHA1 Message Date
TreeHugger Robot
02c8d1b07f Merge "Make PrecomputedText Spannable for supporting selection" into pi-dev 2018-03-22 23:21:54 +00:00
TreeHugger Robot
0205fd1064 Merge "Add MANAGE_IPSEC_TUNNELS Permission" into pi-dev 2018-03-22 23:10:11 +00:00
TreeHugger Robot
3a31f6c5cc Merge "Removed urlBarResourceId." into pi-dev 2018-03-22 22:22:30 +00:00
TreeHugger Robot
6affc07065 Merge "APIs to suspend packages with SUSPEND_APPS permission" into pi-dev 2018-03-22 22:15:31 +00:00
Leon Scroggins
ceb14e015b Merge changes from topics "DecodeException_ERROR", "AID_autoStart", "onPartialImage" into pi-dev
* changes:
  Rename ImageDecoder.ERRORs
  Add the ability to autoStart AID from xml
  Re-write onPartialImage API
2018-03-22 21:53:05 +00:00
Nathan Harold
159788455c Add MANAGE_IPSEC_TUNNELS Permission
Add a new MANAGE_IPSEC_TUNNELS permission and
protect all IPsec Tunnel mode APIs with it.
This permission is only granted to the system or
through an AppOp.

Bug: 66955045
Test: compilation
Change-Id: I0f618373b500c493ef2211bece681f74652a1833
2018-03-22 14:16:50 -07:00
Nathan Harold
8a047a0c52 Merge "Add AppOp for IpSec Tunnels" into pi-dev 2018-03-22 21:14:36 +00:00
Tyler Gunn
3a4d495733 Merge "Rename handover failure constant per API review comments." into pi-dev 2018-03-22 20:22:20 +00:00
Suprabh Shukla
021b57ab8d APIs to suspend packages with SUSPEND_APPS permission
Changed the existing hidden api setPackagesSuspendedAsUser to a system
api setPackagesSuspended that can be called by apps with either
MANAGE_USERS or SUSPEND_APPS permission. Additionally, the suspending
app can now specify optional extra information meant to be used by the
suspended apps and the launcher to deal with this state.

The following other APIs are added:
 - isPackageSuspended(): Apps can query whether they are in a suspended
 state
 - @SystemApi getPackageSuspendedAppExtras(String): Apps with permission
 SUSPEND_APPS can get the appExtras passed to PM when suspending the
 app.
 - @SystemApi setPackageSuspendedAppExtras(String, PersistableBundle):
 Apps with permission SUSPEND_APPS can update app extras for a
 suspended package.
 - getPackageSuspendedAppExtras(): Apps can call to get the appExtras
 passed in to PM when they were suspended.

Test: Can be run via:
atest com.android.server.pm.PackageManagerSettingsTests
atest com.android.server.pm.PackageUserStateTest
atest com.android.server.pm.SuspendPackagesTest

Bug: 74336673
Change-Id: I3b9ed2c8478b34ee2e8986f5f5fddb2839d102e3
2018-03-22 12:59:57 -07:00
Felipe Leme
88b745cce3 Removed urlBarResourceId.
It will be removed before the final P build.

Test: atest FrameworksServicesTests:AutofillManagerServiceTest CtsAutoFillServiceTestCases
Fixes: 74445943

Change-Id: I9bc243a3c1ae78f2c385dbb907d362d8ab16b34c
2018-03-22 11:44:06 -07:00
Robert Berry
c6bd185565 Merge "Unhide RecoveryController#getRootCertificates()" into pi-dev 2018-03-22 17:23:05 +00:00
Robert Berry
3818de595b Merge "Unhide RecoverySession#recoverKeyChainSnapshot() method" into pi-dev 2018-03-22 17:19:33 +00:00
Leon Scroggins III
cf7294fda6 Rename ImageDecoder.ERRORs
Bug: 73788969
Test: I501e8b76aacd785cb994165ab01dc1b39fea3a1c

Move them into ImageDecoder.DecodeException, which is where they are
actually used. This also provides some more context, so that the prefix
"ERROR_" is no longer necessary, fixing the redundancy/awkwardness in
ERROR_SOURCE_ERROR. Further rename that to SOURCE_MALFORMED_DATA, which
is more descriptive, and does not imply a Java Error.

Change-Id: Ied17ad343650f9c33d9a35b0f9d00ccc22264bd6
2018-03-22 13:09:02 -04:00
Felipe Leme
4e561f83cb Merge "Renamed AUTOFILL_COMPAT_MODE_ALLOWED_PACKAGES." into pi-dev 2018-03-22 16:24:53 +00:00
Wyatt Riley
aa8cbab151 Merge "GNSS Model Name constant string and comment updates" into pi-dev 2018-03-22 16:10:08 +00:00
Tyler Gunn
0ab380166d Rename handover failure constant per API review comments.
Expanding EMERG to EMERGENCY.

Test: Build code
Bug: 74831393
Merged-In: Ic0555b20dc508d022c0165a5d9dc3b40b33db70e
Change-Id: Ic0555b20dc508d022c0165a5d9dc3b40b33db70e
(cherry picked from commit a4ef504bdc)
2018-03-22 15:34:32 +00:00
Robert Berry
750b71c651 Unhide RecoverySession#recoverKeyChainSnapshot() method
The other methods expose raw key materials, which is a security flaw. This
new API is already being used by GMSCore, via reflection (although falling
back to the old methods if it is not available). Would be good to switch it
on ASAP.

Bug: 74345822
Test: Tested with GMSCore
Change-Id: I30d53c9e825888d1122c72d23b7c1c10c6edb1e9
2018-03-22 13:49:54 +00:00
Robert Berry
93d002ca5f Unhide RecoveryController#getRootCertificates()
This is so we can add a GTS test to affirm that GMS devices include the
Google Cloud Key Vault root certificate.

Test: runtest frameworks-core -p android.security.keystore.recovery
Bug: 74621045
Change-Id: Ib6431f5739f3dff066832e6aa300dd9da5bc0727
2018-03-22 13:49:20 +00:00
Bo Zhu
e7997a3ea7 Unhide the new RecoverySession#start with the alias for root cert
Bug: 76033708
Test: none, it's just unhiding APIs
Change-Id: Iec1e44d24bb1704da082404566233ada83b8eb81
2018-03-21 19:50:50 -07:00
Felipe Leme
fd4003bf09 Renamed AUTOFILL_COMPAT_MODE_ALLOWED_PACKAGES.
The syntax of that setting changed from P Developer Preview1 to the final P, so
it's safer to use a new name than risk breaking devices during the update.

Bug: 74458004
Test: atest CtsAutoFillServiceTestCases:VirtualContainerActivityCompatModeTest\
FrameworksCoreTests:SettingsBackupTest

Change-Id: I1c507e8eae20f598dfe259178667ae6c2bc892ff
2018-03-21 16:36:25 -07:00
Nathan Harold
1bb42067f0 Add AppOp for IpSec Tunnels
Add a new AppOp to allow bound system services
such as TelephonyDataServices and potentially
VPN providers to access the IPsec tunnel
management APIs. Since this is not directly
user-facing, and not all System apps should have
this privilege, the access is only granted via
an AppOp or to the system itself.

Bug: 66955045
Test: compilation (still WIP)
Change-Id: I0b0528c75c622d8538baeec019c3672cbed5d899
2018-03-21 15:23:39 -07:00
Nathan Harold
095b9e8e1c Merge changes I4c26aea7,I79911434 into pi-dev
* changes:
  Check mOwnedByTransform to avoid DELSA on SPI
  Expose add/removeAddress for IpSecInterfaces
2018-03-21 20:59:02 +00:00
TreeHugger Robot
2f81559d29 Merge "Return a boolean from the mandatory backup transport setter." into pi-dev 2018-03-21 19:34:52 +00:00
TreeHugger Robot
158a18108b Merge "WebView Tracing API: remove LARGE_BUFFER, make RECORD_CONTINUOUSLY the default mode" into pi-dev 2018-03-21 17:14:47 +00:00
Tim Volodine
1a07ccc07e WebView Tracing API: remove LARGE_BUFFER, make RECORD_CONTINUOUSLY the default mode
This patch:
- remove the RECORD_UNTIL_FULL_LARGE_BUFFER tracing option, because
  this does not appear really useful in the production setting as
  the buffer size limit exceeds the device memory and can grow
  uncontrollably large.
- make RECORD_CONTINUOUSLY the default mode for tracing, to make
  sure the least memory is used by default (typically 4x less than the
  previous default RECORD_UNTIL_FULL).
- add some missing IntDef values (to make them match with the constants)

BUG: 63750258
Test: CTS

Change-Id: Ib3698273dee776ebc7a8388fc1bd8c80255e3b63
2018-03-21 17:12:20 +00:00
TreeHugger Robot
1543171d3e Merge "Some Slices API refinement" into pi-dev 2018-03-21 17:06:40 +00:00
Leon Scroggins III
1d2bf2b846 Re-write onPartialImage API
Bug: 73788969
Test: If9e27a6ce2604128a619bc4843d62711f94b4d87

Add a new Exception subclass that contains information about the type of
error, and the original Exception, if any. Remove the old
IncompleteException class. If the decode creates a partial image, pass
the information up to Java, where we create the new Exception and pass
it to the callback and/or throw it. Rewrite nDecodeBitmap to always take
the ImageDecoder as a parameter for this callback, and simply use a
boolean to determine whether to call onPostProcess

Check for exceptions in some overlooked cases in native code, and
route to the new type.

Remove FIXME to avoid parsing the whole image. In my limited testing,
it didn't seem to speed anything up, and this should be called in a
background thread anyway. Parsing now also ensures that we've read the
stream when we can have a chance to handle the exception from the right
place.

Remove fixme for b/70626068, which has been marked as WontFix.

Add a TestApi for testing an Exception thrown by an InputStream.

Remove onPartialImage from hiddenapi-light-greylist.txt to fix the build
error this change introduces. onPartialImage was erroneously added to
the list.

Change-Id: I12f69857328e63c993bd669412b06addeb6a74f1
2018-03-21 12:55:46 -04:00
Lenka Trochtova
56681f761e Return a boolean from the mandatory backup transport setter.
Bug: 73813043
Bug: 64012357
Test: cts-tradefed run cts -m CtsDevicePolicyManagerTestCases --test com.android.cts.devicepolicy.DeviceOwnerTest#testGetAndSetMandatoryBackupTransport
Test: cts-tradefed run cts -m CtsBackupHostTestCase --test android.cts.backup.BackupDeviceOwnerHostSideTest

Change-Id: I7f47a41070b767a6be8b986be485b4ad782690cf
2018-03-21 15:48:41 +01:00
Jason Monk
1918ef7569 UsageEvents for slices pinning
Test: atest frameworks/base/services/tests/servicestests
Bug: 73455786
Change-Id: I6a37f5525c29d3f47aa37e262c8834840309ba44
2018-03-21 10:03:29 -04:00
TreeHugger Robot
6951716952 Merge "Add API WebView.getWebViewLooper()" into pi-dev 2018-03-21 11:59:28 +00:00
Seigo Nonaka
a553477ddf Make PrecomputedText Spannable for supporting selection
This is 2nd attempt of I072dfd70b9a687d9c47e310d8cdb34f988fbb32e

The root cause of crashing is unexpected copying of NoCopySpan by
SpannableString constructor. To prevent crashing, stop copying
NoCopySpan by passing ignoreNoCopySpan=true to SpannableString
copy constructor.

The original commit message is following:

To support selectable TextView, make PrecomputedText spannable.
By this change, TextView start using DynamicLayout instead of
StaticLayout. DynamicLayout requires boundary rectangle of the
text, so this CL also adds getBounds method to PrecomputedText
which retrieves measured boundary box from native.

By this change, the selectable TextView performance for the
precomputed text 10x faster. On the other hand, the performacne
for the non-selectable text gets 2.5x slower. However, we concluded
that we accept this performance regression since it still 10 times
faster than non precomputed text.

Here is a precomputed text performance result of TextView.
android.widget.TextViewPrecomputedTextPerfTest:
  newLayout_PrecomputedText           :    736,130 ->  1,648,694: (+124.0%)
  newLayout_PrecomputedText_Selectable: 17,379,765 ->  1,700,146: (-90.2%)
  onDraw_PrecomputedText              :  1,274,921 ->  1,848,076: (+45.0%)
  onDraw_PrecomputedText_Selectable   : 17,367,238 ->  1,399,169: (-91.9%)
  onMeasure_PrecomputedText           :    752,875 ->  1,766,606: (+134.6%)
  onMeasure_PrecomputedText_Selectable: 17,647,842 ->  1,810,704: (-89.7%)
  setText_PrecomputedText             :     92,894 ->    135,471: (+45.8%)
  setText_PrecomputedText_Selectable  :    145,134 ->    215,757: (+48.7%)

Bug: 72998298
Test: atest CtsWidgetTestCases:EditTextTest
    CtsWidgetTestCases:TextViewFadingEdgeTest
    FrameworksCoreTests:TextViewFallbackLineSpacingTest
    FrameworksCoreTests:TextViewTest FrameworksCoreTests:TypefaceTest
    CtsGraphicsTestCases:TypefaceTest CtsWidgetTestCases:TextViewTest
    CtsTextTestCases FrameworksCoreTests:android.text
    CtsWidgetTestCases:TextViewPrecomputedTextTest

Change-Id: Ie98c75d8b4ba962eaf0a544357b2ff1ade891118
2018-03-20 22:22:30 -07:00
TreeHugger Robot
6ed6340e3c Merge changes from topic "SoundTriggerJobService-steps" into pi-dev
* changes:
  Throttle number of sound trigger operations / day
  Add SoundTriggerDetectionService
  Expose SoundTriggerManager and SoundTrigger APIs
2018-03-21 03:27:56 +00:00
TreeHugger Robot
daec95a7f5 Merge "Get current and default brightness configs." into pi-dev 2018-03-21 02:31:19 +00:00
TreeHugger Robot
ffb6521082 Merge "heif: address api review comments" into pi-dev 2018-03-21 01:04:15 +00:00
TreeHugger Robot
6c0f42b3b5 Merge "Ability to hide/unhide suspended app notifications" into pi-dev 2018-03-20 23:38:36 +00:00
TreeHugger Robot
5d5d6aa28a Merge "Better javadoc and rename several methods in ApnSetting." into pi-dev 2018-03-20 23:38:10 +00:00
Nathan Harold
c8f63060ad Expose add/removeAddress for IpSecInterfaces
When exposing the APIs, these were missed.
The outer structure is exposed, so this exposes
the addAddress and removeAddress methods.

Bug: 75234273
Test: compilation
Merged-In: I79911434f9baa660e4d8564cc59d80da4a710c42
Change-Id: I79911434f9baa660e4d8564cc59d80da4a710c42
(cherry picked from commit a83601a511)
2018-03-20 16:01:28 -07:00
Jiuyu Sun
b8651f6fba Merge "Mark eraseSubscriptions as @SystemApi." into pi-dev 2018-03-20 22:53:31 +00:00
Eino-Ville Talvala
1486849e8b Merge "Camera2: Deprecate LENS_RADIAL_DISTORTION, add LENS_DISTORTION" into pi-dev 2018-03-20 21:58:15 +00:00
Beverly
5a20a5ed2f Ability to hide/unhide suspended app notifications
Test: NotificationListenerVerifierActivity.java
Test: atest NotificationDataTest NotificationListenerServiceTest NotificationManagerServiceTest
Bug: 73965645
Change-Id: I49a02e9fd84dfaa1891437a5d8fc52109a43cded
2018-03-20 17:40:36 -04:00
TreeHugger Robot
1c7c2bdd0b Merge "Log visual interruptions to usagestats." into pi-dev 2018-03-20 21:34:01 +00:00
TreeHugger Robot
06ce5f6803 Merge "Make SYSTEM_INTERACTION a SystemApi" into pi-dev 2018-03-20 21:31:58 +00:00
Philip P. Moltmann
18e3eb8168 Add SoundTriggerDetectionService
The service is meant to replace the PendingIntent based API. Once all
users of the PendingIntent based API switched the PendingIntent based API
will be removed.

To have as little as possible impact on the whole SoundTrigger framework
the RemoteSoundTriggerDetectionService class implements the same
interface as the PendingIntent based class. Hence the exising code has
very little change. Further once the old code can be removed the amount
of changed (and added) code is limited.

The RemoteSoundTriggerDetectionService -> SoundTriggerDetectionService
is a vanilla as possible service implementation. The special behaviors
are:
- The system holds a wakelock while service operations are in progress
and the service is bound as foreground. Hence the service can e.g.
listen to the microphone.
- Service operations have a certain amount of time they are allowed to
run. Once every operation is either finished or the the operation
exceeded the allotted time, the system calls onStopOperation for each
still pending operation. This is a similar model as for the commonly
used JobService.
  Please note that if the time allowed for an operation is 15s and
op1 was run as 0si, and op1 was run at 5s, the service is allowed to run
until 20s. Hence _both_ onStopOperations will happen at 20s. This is
done for ease of implementation but should not give the service more
power than calling onStopOperation exactly 15s after each operation is
triggered.
- If an operation is done before the allotted time is reached, the
service can declare the operation as finished manually by calling
onOperationFinished. This is a call back into the system, hence a
'client' binder is sent to the service. If the operation is finished
by calling this method onStopOperation will not be called.
- As the service instance might be killed and restored between
operations we add a opaque bundle 'params' to each operations. The users
of the API can use this to send data from the start command to the
operations. It can also just be set to null. The params are not meant to
store changing state in between operations. Such state needs to be
persisted using the regular methods (e.g. write it to disk)
- A service can be used for multiple recognition sessions. Each
recognition is uniquelity defined by its sound model UUID. Hence each
operation gets at least tree arguments: Operation ID, sound mode UUID, params
- As a small optimization the params are cached inside of the service
instance.

The time allowed for each operation is in a @SystemAPI global setting,
so the service can make sure it finishes the operations before they are
stopped. It might take some time to deliver the operations via the
binder, hence it is not recommended to try to use every last ms of
allotted time.

Test: atest SoundTriggerDetectionServiceTest (added in separate CL)
      atest android.provider.SettingsBackupTest
Change-Id: I47f813b7a5138a6f24732197813a605d29f85a93
Fixes: 73829108
2018-03-20 13:57:14 -07:00
Philip P. Moltmann
a5fd0294c7 Expose SoundTriggerManager and SoundTrigger APIs
These APIs require a system permissions, hence SystemAPI.

As SoundTrigger is now partially SystemApi and partially internal API a
lot of @hide tags are needed to keep hiding the still internal classes,
fields and methods. As SoundTrigger is heavily used via reflection no
structural change to this class can be made.

The MANAGE_SOUND_TRIGGER permission should be visible to the apps as
the apps need to know which permission to request in their manifest.
If it wouldn't be exposed it would just be a magic string.

Test: built
Change-Id: Ic93d67639e2605c26c961acdd827c14cb0a68f47
Bug: 73829108, 71981721
2018-03-20 13:57:14 -07:00
Jason Monk
106387f0b2 Some Slices API refinement
Removing overloads, fixing documentation, adding stringdefs, etc.

Test: update-api
Change-Id: Iae902092a29d44c3f4735ad2c3392bb35988684a
Fixes: 73124159
Bug: 73123366
Fixes: 73123451
Fixes: 73123651
Fixes: 73124123
2018-03-20 16:55:47 -04:00
Gustav Sennton
6abde8b128 Add API WebView.getWebViewLooper()
We want to rename WebView.getLooper() to contrast it better with the
unrelated method WebView.getHandler(). For now we just create a method
to replace WebView.getLooper(), so that we can remove references to
WebView.getLooper() before removing it.

Bug: 74831609
Test: make
Change-Id: I8e493a67aa078f9c8ceea6706dc940abacfdd6e6
2018-03-20 20:39:52 +00:00
Amit Mahajan
cfa8591779 Merge "Revert "TelephonyManager System APIs process"" into pi-dev 2018-03-20 19:27:10 +00:00
Julia Reynolds
7217dc9f76 Log visual interruptions to usagestats.
Test: runtest systemui-notification, cts
Bug: 74318867
Change-Id: I6233240c2a7940225cadde0258b5d7ba88b86aaf
2018-03-20 15:14:16 -04:00
yuemingw
7e1298f1a4 Better javadoc and rename several methods in ApnSetting.
Test: runtest -x frameworks/base/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java
run cts --module CtsDevicePolicyManagerTestCases --test com.android.cts.devicepolicy.DeviceOwnerTest#testOverrideApn

Bug: 73087996
Change-Id: I5232c92a44ab505946956f81965a205f170aa52b
2018-03-20 18:15:25 +00:00
Chris Wren
6446ed4a0f Merge "support framework logging for slices" into pi-dev 2018-03-20 17:33:40 +00:00