To help with monitoring Mainline releases, log the reason
for a watchdog-initiated rollback. This may be due to
native crashes, app crashes, ANRs or explicit health check
failures.
Add a mapping from PackageWatchdog failure reason to the
new metrics.
Bug: 138782888
Test: atest PackageWatchdogTest
Test: atest StatsdHostTestCases
Change-Id: Ia3e73d955508297004591eac762555665c557b8a
Time has come that we can finally ditch untrusted password reset i.e.
changing lockscreen password without providing the existing password or
an activiated password reset token. In this change, we are:
1. Preventing any DPC / legacy device admin from invoking
DPM.resetPassword(), the primary route to invoke untrusted password
reset. Depending on their target SDK level, resetPassword() will either
throw SecurityException, or fail silently.
2. Still allowing privilleged app holding RESET_PASSWORD permission to
call this API, but it's limited to setting a new passowrd on an
unsecured device.
3. Removing synthetic password caching mechanism in LockSettingsService,
whose sole purpose was to support untrusted password reset.
Bug: 137939224
Test: atest com.android.server.locksettings
Test: atest com.android.server.devicepolicy.DevicePolicyManagerTest
Change-Id: Ie3e5e277984b6fc2f1d378880363028752bad775
Ideally audio and video files would embed information like subtitles
and lyrics directly into the container format, but alas the world
hasn't completely moved to Matroska yet.
Thus we're willing to recognize these side-car files and let them be
visible to apps that have gained the "Audio" or "Video" permissions.
Bug: 132359020, 143549606
Test: atest --test-mapping packages/providers/MediaProvider
Change-Id: I07513c48e245a00c0288a4b0fbee322cb02f49a9
We're not ready to commit to VolumeRecord in an API surface, so the
next best choice we have is to place the logic in MediaStore, which
is outside the Mainline module boundary.
This also has the benefit of giving partners control over exactly
what policy they want to use for expiring stale volumes.
Bug: 137890034
Test: atest --test-mapping packages/providers/MediaProvider
Change-Id: I677e4bfa6d08e32775e02c323debbaa90acf632b
* changes:
Collapse the implementations of BluetoothDevice.createBond
Call parameterized version of IBluetooth.enable
Implement isEnabled in terms of getState
This implementation continue to uses libbinder, as opposed to
libbinder_ndk.
We also move many (but not all) statsd aidl files from
frameworks/base/core into the apex.
Test: m -j128 && bit statsd_test:*
Change-Id: I95f06e937e50c1e2a638163b13587682402956a7
Hidden APIs of SubscriptionPlan are used in system server, not
telephopny. So it makes more sense for SubscriptionPlan to be in
core instead of telephopny.
Bug: 145814152
Test: make
Change-Id: I3bfb0ec699f46b0cc34c3bc2e13bfb242bc295bf
Hidden APIs of SubscriptionPlan are used in system server, not
telephopny. So it makes more sense for SubscriptionPlan to be in
core instead of telephopny.
Bug: 145814152
Test: make
Change-Id: I4c7ae02f9f4f154c99263521e08265d6fb367272
Some apps have an payment screen with a scan card button.
When a text field's text is set in this scenario, the autofill
service is never triggered because no field gets focused.
Currently this new behavior is implemented for normal view.
Add the check logic in these two functions of AutofillManager
(notifyValueChanged/notifyViewVisibilityChanged)
to check if it should trigger autofill automatically.
Bug: 142821537
Test: atest CtsAutoFillServiceTestCases
Change-Id: Ibde94791f49772dc19cb8566a9c3a48dfbf16a58
StatsManager used to synchronize on "this", which is dangerous because
an app can get StatsManager and also sychronize on it, which would block
all calls. We now lock on a private final object.
Test: make
Bug: 144315658
Fixes: 144315658
Change-Id: Ia34b1c586b09a48b244cc16dba77fe54e81f62cf