From http://go/p-shortcut-restore :
Currently on pre-P builds, there are 6 cases where shortcuts won't be restored.
Launcher issue:
A: Launcher is downgraded
B: Launcher has allowBackup="false"
C: Launcher's signature changed.
A-C would result in not restoring any shortcuts from any apps.
App issue:
D: App is downgraded
E: App has allowBackup="false"
F: App's signature changed.
D-F would result in not restoring any shortcuts from individual apps.
In P, we'll restore all pinned shortcuts anyway except in case B and C.
The new behavior would be:
A: We'll restore all pinned shortcuts anyway even if the launcher is downgraded.
B: If the launcher doesn't support backup&restore, we still don't restore shortcuts.
C: If the launcher has a different signature, we still don't restore shortcuts.
D, E, F: All pinned shortcuts will be restored, but are disabled.
In case of D, E, F, shortcuts would be:
1. ShortcutInfo.isEnabled() will return false. They are not launchable.
2. If it's case D (downgrade), shortcuts will be re-enabled once a publisher app
is updated to the original version or higher.
3. getDisabledMessage() will return a special, canned message explaining why
they're disabled.
4. A new API getDisabledReason() will return one of the following values:
- DISABLED_REASON_NOT_DISABLED (for non-disabled shortcuts)
- DISABLED_REASON_BY_APP (for shortcuts disabled by apps)
- DISABLED_REASON_APP_CHANGED (for shortcuts disabled when a manifest shortcut is gone.)
- DISABLED_REASON_VERSION_LOWER (case D)
- DISABLED_REASON_BACKUP_NOT_SUPPORTED (case E)
- DISABLED_REASON_SIGNATURE_MISMATCH (case F)
- (DISABLE_REASON_OTHER_RESTORE_ISSUE for future use)
Launcher can opt to use this API to show a custom error message, rather than
using the canned system message from getDisabledMessage().
5. This spec change is completely transparent to publisher apps.
In case D,E,F, the disabled shortcuts will only be visible to the launcher,
and from the publisher app's point of view, they still don't exist.
APIs such as getPinnedShortcuts() will not return them, and updateShortcuts()
will not affect them. The enableShortcut() will not enable them either.
Bug 62451035
Test: adb shell am instrument -w -e class com.android.server.pm.ShortcutManagerTest1 -w com.android.frameworks.servicestests
Test: adb shell am instrument -w -e class com.android.server.pm.ShortcutManagerTest2 -w com.android.frameworks.servicestests
Test: adb shell am instrument -w -e class com.android.server.pm.ShortcutManagerTest3 -w com.android.frameworks.servicestests
Test: adb shell am instrument -w -e class com.android.server.pm.ShortcutManagerTest4 -w com.android.frameworks.servicestests
Test: adb shell am instrument -w -e class com.android.server.pm.ShortcutManagerTest5 -w com.android.frameworks.servicestests
Test: adb shell am instrument -w -e class com.android.server.pm.ShortcutManagerTest6 -w com.android.frameworks.servicestests
Test: adb shell am instrument -w -e class com.android.server.pm.ShortcutManagerTest7 -w com.android.frameworks.servicestests
Test: adb shell am instrument -w -e class com.android.server.pm.ShortcutManagerTest8 -w com.android.frameworks.servicestests
Test: adb shell am instrument -w -e class com.android.server.pm.ShortcutManagerTest9 -w com.android.frameworks.servicestests
Test: adb shell am instrument -w -e class com.android.server.pm.ShortcutManagerTest10 -w com.android.frameworks.servicestests
Test: cts-tradefed run cts-dev --skip-device-info --skip-preconditions --skip-system-status-check com.android.compatibility.common.tradefed.targetprep.NetworkConnectivityChecker -a armeabi-v7a -l INFO -m CtsShortcutManagerTestCases
Test: cts-tradefed run cts-dev --skip-device-info --skip-preconditions --skip-system-status-check com.android.compatibility.common.tradefed.targetprep.NetworkConnectivityChecker -a armeabi-v7a -l INFO -m CtsShortcutHostTestCases
Change-Id: Ib4d73aa44a0395f5e37c8ad0c9cd041a9038fb66
Still very rough UI, but basically does what is intended.
Also add two tests apps for manual tests (CTS test will
be coming).
Bug: 63937884
Test: manual
Change-Id: I45a6a2b122a75f8125510a2027bb1faf57c6956d
Move more state / logic into the permission sub-package. We're
close to being able to wholesale move large amounts of code from
package manager into the permission manager.
Bug: 63539144
Test: Manual. Builds and runs
Test: cts-tradefed run commandAndExit cts-dev -m CtsAppSecurityHostTestCases -t android.appsecurity.cts.PermissionsHostTest
Test: cts-tradefed run commandAndExit cts-dev -m CtsPermissionTestCases
Test: cts-tradefed run commandAndExit cts-dev -m CtsPermission2TestCases
Test: bit FrameworksServicesTests:com.android.server.pm.PackageManagerSettingsTests
Change-Id: Id292441ff22b14665fd77f700ad934bf2c5a3357
Create a settings class only for use with permissions. It's
subservient [and should only be accessed directly by] package
settings or the permission manager. The rest of the permission
related data needs to be moved to permission settings. At
which point we can start pulling the permission methods out of
the package manager service and into the permission manager.
We still have a somewhat tight relationship between package
manager and the permission manager. It's unclear how far we need
to separate them and if relying entirely on an internal
interface is sufficient.
Bug: 63539144
Test: Manual. Builds and runs
Test: cts-tradefed run commandAndExit cts-dev -m CtsAppSecurityHostTestCases -t android.appsecurity.cts.PermissionsHostTest
Test: cts-tradefed run commandAndExit cts-dev -m CtsPermissionTestCases
Test: cts-tradefed run commandAndExit cts-dev -m CtsPermission2TestCases
Test: bit FrameworksServicesTests:com.android.server.pm.PackageManagerSettingsTests
Change-Id: I616184fa2135a11687e4ce615884f861466fdebe
When an activity overrides attachBaseContext(), the attached context must share
the same AutofillCient, otherwise it will break autofill in the activity.
Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases -t android.autofillservice.cts.AttachedContextActivityTest
Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases
Fixes: 67350639
Change-Id: I6b0c4c2fab5fa68eb6ee0714e107ca0816efb2cb
Move this class to the permission sub-class. No longer depends upon
PackageManager's lock and adds some internal interfaces so it can
get back to the PackageManager.
Bug: 63539144
Test: Manual. Builds and runs
Test: cts-tradefed run commandAndExit cts-dev -m CtsAppSecurityHostTestCases -t android.appsecurity.cts.PermissionsHostTest
Test: cts-tradefed run commandAndExit cts-dev -m CtsPermissionTestCases
Test: cts-tradefed run commandAndExit cts-dev -m CtsPermission2TestCases
Change-Id: Ibc1500f56cfb67722e68b258ea59118603508912
Add PackageManager API which allows apps to test whether the platform
officially supports the Wi-Fi RTT API.
Only start the RTT service if the device supports it.
Bug: 65014628
Test: integration tests pass
Change-Id: Ie88bd29ccd592e9a29ff24e8cc346afc360f03b0
Replace existing Wi-Fi RTT manager framework. Creating new framework
in parallel since there's code using the new framework - will be
switched over once new version ready.
New version is AIDL-based.
Bug: 65014552
Test: unit tests and integration tests
Change-Id: Id468c9b2a3c94eb30959f5ac5e4b1688fb8fc633
Awhile back we explicitly blocked any new ASEC installs, with the
expectation that we'd eventually remove the logic entirely. We've
had them disabled for about a week now without incident, so let's
rip out the remaining code.
Test: bit FrameworksCoreTests:android.content.pm.PackageHelperTests
Test: bit FrameworksCoreTests:android.content.pm.PackageManagerTests
Bug: 32913676
Change-Id: I1ecc35487420731f5c4bdf03bca5751548ce51b3
This is the first of many changes. Moving permissions to their own package.
Change-Id: I60e94e2da3c96788fc165e97e813ab5b9ee51586
Bug: 63539144
Test: Manual. Builds and runs
Test: cts-tradefed run commandAndExit cts-dev -m CtsAppSecurityHostTestCases -t android.appsecurity.cts.PermissionsHostTest
Test: cts-tradefed run commandAndExit cts-dev -m CtsPermissionTestCases
Test: cts-tradefed run commandAndExit cts-dev -m CtsPermission2TestCases
RankingHelper will be done in another CL...that's likely a large CL on
its own.
BUG: 65750824
Test: flash on device and check incident.proto output
Change-Id: I740166aed6ac6769ee3e013cf2bd403256eb77dc
Data URIs in intents can use schemes with digits and some special
characters (see RFC 2396 and 3986). This patch fixes how these
data URIs are handled by Intent.toUri to support these schemes.
Bug: 63930680
Test: run cts android.content.cts.IntentTest#testUris
Change-Id: I0dbb72325f59f372abba83be9e14c59d5665a053
Signed-off-by: Christopher Schuster <levjj@google.com>
Also adding ActivityInfo.RESIZE_MODE_RESIZEABLE to TestApi
Test: cts-tradefed run commandAndExit cts-dev --module CtsActivityManagerDeviceTestCases
Change-Id: I958aa155b266799840ece1ca07feed8593724449
It's hard enough to read bugreports without having to decipher all of
the various IntDef's littered around; let's go ahead and just translate
them to something readable.
Bug: 65563703
Test: adb shell dumpsys window policy
Change-Id: Iea6cd309eb3411a65e54217fef814a66107a8e31
Also added WindowContainerProto and ConfigurationContainerProto
Will be used by cts tests in upcoming CLs that replace StackId APIs.
Test: adb shell dumpsys window --proto
Bug: 64146578
Change-Id: Id6ca2a93e3d15ac696ab54cb241870e973985967
The new OEM permission flavor of signature protected perissions
can be granted only to apps on the OEM partition if they are:
1. Signed as the one declaring the permission
2. The requesting app is on OEM partition of the system image and
declares the permission used and the OEM explicitly granted this
permission by adding an entry in /oem/permission/*.xml
with the following format:
<permissions>
<oem-permissions package="foo.bar.baz">
<permission name="android.permission.ACCESS_FOO" granted="true"/>
</oem-permissions>
</permissions>
All OEM permissions requested by any app on the OEM partition
must be declared granted or not to force the OEM making a well
though out explicit choice. If that condidtion is not met the
system server restarts - this prevents shipping a device with
OEM permissions for which no opition was explicitly expressed.
Normal apps requesting an OEM permission has no effect, i.e the
permission is only granted on a signature match.
Change-Id: I345bb0b56368ee03e4bd768faab540ee4e0571ae
Bug: 65497745
Test: Manual
Introduces StatsCompanionService.java and sets it up as a system service.
This service is a helper for statsd. It will be responsible for setting
and cancelling alarms related to polling stats and anomaly detection.
It currently does not have selinux permission, so must be started
manually (or with selinux temporarily disabled).
Test: disable enforcing selinux, then set and cancel alarms and make
sure they work.
Change-Id: I3bd73acdd998ee424696cce40965134c14220d8f
Updated data/etc/platform.xml to make the org.apache.http.legacy library
usable by applications. The runtime location of the
org.apache.http.legacy library is
/system/framework/org.apache.http.legacy.boot.jar not
/system/framework/org.apache.http.legacy.jar.
Stop removing org.apache.http.legacy from the required and optional
shared library lists and instead add it to the required list if it is
not present in either and the package is targeted at SDK
version <= O_MR1.
Bug: 18027885
Test: make FrameworksCoreTests, install and run
Change-Id: I686e3c20f5860e58825e1b88f220f9b8c335849c
Configuration splits have no dependencies which can lead to exceptions
when computing their class loader context.
In general, we do not need to compute the class loader context for apks
without code.
This CL addresses the issue by ignoring "code" paths with no actual code.
Bug: 65159159
Test: adb install-multiple config_splits
runtest -x
services/tests/servicestests/src/com/android/server/pm/dex/DexoptUtilsTest.java
Change-Id: Ida1eb901eecba4a4266de73022f6ee4659367873