So that there is a single source of truth for pending backups and
pending restores. This fixes rollback of userdata for staged rollbacks.
Included in this change:
* Distinguish between PENDING_AVAILABLE, AVAILABLE, and COMMITTED
rollback states.
* Separate completeEnableRollback from makeRollbackAvailable.
* Make timestamp @NonNull and set it when rollback is made available.
* Don't listen for SESSION_UPDATED broadcasts.
* Factor out common code for ignoring saveRollbackData IOException.
* Other minor cleanups.
Test: atest RollbackTest
Test: atest StagedRollbackTest
Test: atest AppDataRollbackHelperTest
Bug: 124044231
Change-Id: I654a7827e9ed15659d0cb80e5a2c29c2660aea08
If they were null, then the Parcelable would fail to work.
Bug: 126726802
Test: manual
Change-Id: I7929ffa2f20e5de1c8e68e8263cca99496e9d014
Exempt-From-Owner-Approval: Trivial API annotations
Also migrate MediaProvider logging to more general-purpose location
on the ContentProvider.Transport, where we can log exact input/output
values to aid debugging.
Bug: 124347872
Test: manual
Change-Id: I6aba60879ded4e0892d2d1cdd717c23cebaaabd8
* changes:
Rename saveAvailableRollback to saveRollbackData.
Have RollbackData reuse RollbackInfo.
Miscellaneous cleanup in RollbackStore.
Rename RollbackData.inProgress to restoreUserDataInProgress.
* changes:
Allow to project audio from a Screen capture MediaProjection
Expose allowAudioPlaybackCapture to PackageManagerNative
Introduce playback capture application manifest flag
For other cases calling synchronously is better, because callers might
expect the next get call to return the right browser. However in the
case of installing a browser app, we are holding the mPackages lock
and should not be calling into higher level components synchronously,
so use a new async call for this. This fixes the system-hang until
timeout when installing a new browser app.
Bug: 124452117
Bug: 123775970
Test: manual
Change-Id: Ib820e65c79c2315f41ff0e31268631c973af4511
To prevent us from reading all APEXes at boot and verifying their
integrity; this is not necessary because /system is protected by
dm-verity.
Bug: 126514108
Bug: 117823094
Test: verified system APEXes are no longer read entirely at boot
Change-Id: I1dcf97ce63505602d2de1913e728a1d57b0e9964
Rather than duplicating the same information.
This is in preparation for storing available and recently committed
rollbacks the same way so we don't end up with duplicate copies of
PackageRollbackInfo for a rollback so we can fix the bug when doing
userdata restore for staged installs.
Bug: 124044231
Test: atest RollbackTest
Test: atest StagedRollbackTest
Test: atest AppDataRollbackHelperTest
Change-Id: I6ca164adc4351b778d153d4b33296386f6833b61
Allow apps to opt-out of their playback beeing recorded with an
application wide out-out.
Previously an application had to opt-out on each of its audio tracks.
Application targeting an SDK < Q are considered opt-out by default.
Application targeting an SDK >= Q are considered opt-in by default.
Test: adb shell audiorecorder --target /data/file1.raw &
adb shell am start -a android.intent.action.VIEW -d file:///system/media/audio/ringtones/Lollipop.ogg -t audio/ogg
adb dumpsys media.audio_policy # check playback is *not* recorded
# change packages/apps/Music manifest to allowPlaybackCapture=true
adb install out/target/product/walleye/system/product/app/Music/Music.apk
adb shell am start -a android.intent.action.VIEW -d file:///system/media/audio/ringtones/Lollipop.ogg -t audio/ogg
adb dumpsys media.audio_policy # check playback is recorded
kill %1
adb pull /data/file1.raw && sox -r 48000 -e signed -b 16 -c 2 file1.raw file.wav&& audacity file.wav
# check that the audio file contains first silence then the ringtone after the manifest flag was added
Bug: 111453086
Change-Id: Ie617b15f481a7f148b6e9fc9d64e61acaa5ce71d
Signed-off-by: Kevin Rocard <krocard@google.com>
Also, throw an IllegalArgumentException is these APIs are called on
sessions that are not marked as staged.
Test: tested new apis with an ad-hoc app. atest RollbackTest
StagedRollbackTest
Fix: 124507718
Change-Id: I3529aaff404d644ab6dad98f29411141e8df865d
Add @RequiresPermission annotations to the methods so that
it's clear what permission is protecting these APIs.
Test: make
Change-Id: I203ce997319c7fc8a13e91b55f3c55d844429be8
Fix: 123661724
after the asynchronous restore is complete
This is a better alternative to the existing synchronous PackageManager.installExistingPackage
method where the restore operation happens asynchronously but the method itself will return
success before the restore finishes.
Bug: 122881085
Test: 1) cts-tradefed run cts -m CtsBackupHostTestCases
-t android.cts.backup.ProfileKeyValueBackupRestoreHostSideTest
2) atest RunBackupFrameworksServicesRoboTests
3) Install Hangouts on work profile. Then install on primary profile, backup and uninstall.
Now install again and immediately hit Open. Before this change, the app will crash after a few
seconds (when the background restore operation finishes). With this change and a corresponding
Play Store change to use this new method, Open shows up only after restore has finished so the
app doesn't crash.
Change-Id: I5d2e1f3bb5509894bedd6bbcfac32ed6cf946a80
- Allow an app to change policy_fixed permissions
- Disallow apps >= Q to change the polic_fixed flag
Bug: 124128308
Test: Changed permissions that were policy_fixed
Change-Id: Ia94bae1b993bd8a18c93f866df2114c740fa17bd
ShortcutManager#hasShareTargets() is used in ShareSheet, which is moving
out of system process. So we need to annotate hasShareTargets as systemApi
and enforce permission on the caller.
Bug: 123779604
Test: atest ShortcutManagerTest1
Change-Id: Ib2352f0e8600b0e792405af5b9b61b380c050d28
Prior to this CL we were just caching whether the service supported compatibility mode for the app,
but now we're also caching the logging level and whether the app is whitelisted for augmented
autofill - although right now the augmented autofill info is not used, it will allow us to trigger
it in the scenarios where autofill is disabled for the app.
Bug: 123099842
Bug: 123100824
Test: atest CtsAutoFillServiceTestCases:AugmentedLoginActivityTest \
CtsAutoFillServiceTestCases:VirtualContainerActivityCompatModeTest
atest CtsAutoFillServiceTestCases # sanity check, although still flaky
Change-Id: Iaf8ea6634ca94e5e61131890ec17c96c2fbb329a
Priv-app can use it to enable / disable AppDetailsActivity of an app
Bug: 124378857
Test: Able to compile
Change-Id: I3122d7c1a18362cecdcea17b14d21b7c0ce12754
Previously, the plan was for android.test.base to be removed from the
bootclasspath in P, i.e. in the same release as org.apache.http.legacy.
Any apps that targeted < P were to have the android.test.base library
added to their app classpath in order to maintain backwards
compatibility.
Unfortunately, it was not possible to remove android.test.base from P
and instead it is being removed from Q. This update prepares for that
by updating the backwards compatibility support and its tests to add
the android.test.base library to apps that target < Q.
The affected code is only used at runtime when
REMOVE_ATB_FROM_BCP=true.
Bug: 73711752
Test: atest FrameworksCoreTests with and without REMOVE_ATB_FROM_BCP=true
Change-Id: I76b40dad14193cd174114a351b1350c18d647bed
Content Capture for an activity and/or package is only available when the Content Capture service
explicitly whitelists it. As the whitelist is kept at system-server level, it's better to fetch that
info when the application is started and cache it locally, so we can optimize the
ContentCaptureManager APIs to return quickly when it's disabled.
This CL also caches other values such as the buffer parameters.
Test: atest CtsContentCaptureServiceTestCases
Bug: 120494182
Bug: 121202151
Change-Id: I9d5211bca496ffa85ba9efc2a7bb32411834b787
Providing icons for MIME types is generally useful, but we also
need to provide a label and content description. This interface
can be extended internally to surface details about special MIME
types, such as "image/vnd.google.panorama360+jpg".
Bug: 122887179, 120791890
Test: atest android.content.cts.ContentResolverTest
Change-Id: Ibe655896315b9a9662dfdace3ee8ffacf1302eb8