Starting in R, there is a new public API overload that delivers a
flags argument. Some apps may be relying on a previous hidden API
that delivered a userId argument, and this change is used to control
delivery of the new flags argument in its place.
There are dozens of these hidden API users are in the system UID,
either in the system process or the Settings app, so we hard-code
giving them the legacy behavior, since refactoring would be messy
between internal and AOSP branches.
Also adjust incoming and outgoing method signatures to use slightly
more flexible Collection<Uri>, which has handy methods like
contains() and isEmpty().
Bug: 150939131
Test: atest --test-mapping packages/providers/MediaProvider
Test: atest FrameworksServicesTests:com.android.server.devicepolicy.DevicePolicyManagerTest
Exempt-From-Owner-Approval: trivial refactoring
Change-Id: If6a77449e19215cf1c60d4217e62fc04b0959bfc
Add intent that signifies the desire to access the auto revoke UI inside
the Permission Controller.
Bug: 146513245
Test: none needed
Change-Id: I58d32d2c02941f65c52e054ad712541126086586
This API exists for compatibility with pre-Donut applications
that were not properly density aware. As such, there's no
current reason to use this. So deprecate it.
Bug: 150869482
Test: builds
Change-Id: Ie12957988d5f5d292277a291a20b565c2e3ef46e
As part of MediaProvider becoming a Mainline module, some partners
need to understand more details about what triggered a Uri change
notification. This helps listening apps avoid making expensive and
race-condition-prone calls back into MediaProvider; typically when
they're only interested in insert and delete operations. This change
uses the existing "flags" argument to communicate the reason.
This change adds overloads to ContentObserver for listening apps to
receive these flags. In addition, we add overloads that deliver a
clustered set of multiple Uris together in a single Binder transaction
to improve overall efficiency. (This matches well with the existing
CR.notifyChange() API that we added earlier this year, since they
both work with Iterable<Uri>.)
Tests to verify that we only collapse Uris together when all other
method arguments are identical.
Bug: 147778404, 144464323
Test: atest CtsDatabaseTestCases
Test: atest CtsContentTestCases:android.content.cts.ContentResolverTest
Test: atest FrameworksServicesTests:com.android.server.content.ObserverNodeTest
Test: atest --test-mapping packages/providers/MediaProvider
Change-Id: I0bbd8a8b4a898ab6f891d085de0ecb4d68cbe302
Previously we had to use "incremental_service" because the proxy service
was using "incremental". Now that we have removed the proxy service, we
can just use "incremental".
Test: adb shell dumpsys incremental
Test: atest PackageManagerShellCommandIncrementalTest
BUG: 150406132
Change-Id: I0788cb90bf73b074506f9079253c433429eef782
This renames the new ApexContext class to ApexEnvironment, at the
request of the API Council.
Bug: 150685788
Test: atest ApexEnvironmentTest
Change-Id: I4340b0c7e78d240f4e48fdc94ec9e7d60e58d35c
This change adds logging for debuggable and test-only apps when they are
the caller and visibility of another app is blocked due to app
enumeration.
It also adds an adb command to turn logging on and off for other apps to
help developers while debugging issues.
Test: atest AppsFilterTest AppEnumerationTests PackageManagerPerfTest
Bug: 145623959
Change-Id: I1fa930ef40bf08b00c41f51aa25c50b2189395bf
Instead of using Bundle, explicitly specify params when initializing a data loader.
BUG: 150406132
Test: atest PackageManagerShellCommandIncrementalTest
Change-Id: I2f89d3c3ea1058fdbd689da0d5cb801bf4d9a0b4
Was lost in a rebase.
Bug: 150398686
Test: atest com.android.cts.devicepolicy.QuietModeHostsideTest
Test: manual verify no other ParsingPackage changes were lost
Change-Id: I3e17796433686ef38e24492c3255f5ccba1f431c
The UnsupportedAppUsage annotation was accidentally removed in
e6d7a2d022. Restore the method
signature/annotation.
Bug: 150681392
Test: none
Change-Id: I6c46a777c0dbd53fa67d6e1c3e09248f636fe82b
software emulation. Refer to the NDK docs on how to address these devices.
See also cr/292399283.
Change-Id: I0bcad9f1a2944791c1a04f3fa7bcd97630e722ac
Test: m ds-docs-java
Bug: 148296066
PackageInfoWithoutStateUtils is designed for use in core when
the caller doesn't have a PackageSeting.
Because its generic generateApplicationInfo method does a simplified
checkUseInstalled check without the PackageSetting, this fails whenever
state must be taken into account.
This introduces method variants which skips the checks and defers to
PackageInfoUtils's own check.
Bug: 150328400
Test: manual verify call into PackageManager#setSystemAppState with
SYSTEM_APP_STATE_UNINSTALLED and verify
PackageManager#getApplicationInfo throws NameNotFoundException
without fix and succeeds with fix
Test: atest com.android.server.pm.parsing
Test: TODO PackageInfo(WithoutState)Utils test in follow up change
Change-Id: Ie00984c2e1b80d2a3948923dc1293fbfddf01037
There are cases where an app can ship overlays for itself,
but the "signature" policy as described would open up
a vulnerability by allowing the system actor to create
and sign any arbitrary overlay that will apply to the target.
To prevent this, redefine "signature" as target package only,
and introduce "actor" for checking against the actor signature.
Any app that wishes to use both can include both policies.
Bug: 130563563
Test: m aapt2_tests idmapt2_tests and run from host test output
Test: atest libandroidfw_tests
Change-Id: I1c583a5b37f4abbeb18fc6a35c502377d8977a41
with appOp as String and options as Bundle
Bug: 139077993
Bug: 146423958
Test: Build
Change-Id: I5325e08d60016741139251813a5df9b42f2efc82
Merged-In: I5325e08d60016741139251813a5df9b42f2efc82