Age | Commit message (Collapse) | Author |
|
When an app is proxying access to runtime permission protected
data it needs to check whether the calling app has a permission
to the data it is about to proxy which leaves a trace in app ops
that the requesting app perofmed a data access. However, then the
app doing the work needs to get the protected data itself from the
OS which access gets attributed only to itself. As a result there
are two data accesses in app ops where only the first one is a
proxy one that app A got access to Foo through app B - that is the
one we want to show in the permission tracking UIs - and one
for the data access - that is the one we would want to blame on
the calling app, and in fact, these two accesses should be one -
that app A accessed Foo though B. This limitation requires fragile
one off workarounds where both accesses use the same attribution
tag and sys UI has hardcoded rules to dedupe. Since this is not
documented we cannot expect that the ecosystem would reliably
do this workaround in apps that that the workaround in the OS
would be respected by every OEM.
This change adds a mechaism to resolve this issue. It allows for
an app to create an attribution context for another app and then
any private data access thorugh this context would result in a
single app op blame that A accessed Foo though B, i.e. we no longer
have double accounting. Also this can be nested through apps, e.g.
app A asks app B which asks app C for contacts. In this case app
B creates an attribution context for app A and calls into app C
which creates an attribution context for app B. When app C gets
contacts the entire attribution chain would get a porper, single
blame: that C accessed the data, that B got the data from C, and
that A got the data form B. Furthermore, this mechanism ensures
that apps cannot forget to check permissions for the caller
before proxying private data. In our example B and C don't need
to check the permisisons for A and B, respectively, since the
permisisons for the entire attribution chain are checked before
data delivery. Attribution chains are not forgeable preventing
a bad actor to create an arbitrary one - each attribution is
created by the app it refers to and points to a chain of
attributions created by their corresponding apps.
This change also fixes a bug where all content provider accesses
were double counted in app ops due to double noting. While at
this it also fixes that apps can now access their own last ops.
There was a bug where one could not pass null getting the attributed
ops from a historical package ops while this is a valid use case
since if there is no attribution everything is mapped to the null
tag. There were some app op APIs not being piped thorough the app
ops delegate and by extension through the app ops policy. Also
now that we have nice way to express the permission chain in a
call we no longer need the special casing in activity manager to
handle content provider accesses through the OS. Fixed a bug
where we don't properly handle the android.os.shell calls with
an invlaid tag which was failing while the shell can do any tag.
Finally, to ensure the mechanims is validated and works end-to-end
we are adding support for a voice recognizer to blame the client
app for the mic access. The recognition service can create a blaming
context when opening the mic and if the mic is open, which would
do all permission checks, we would not do so again. Since changes
to PermissionChercker for handling attribution sources were made
the CL also hooks up renounced permissoins in the request permission
flow and in the permission checks.
bug:158792096
bug:180647319
Test:atest CtsPermissionsTestCases
atest CtsPermissions2TestCases
atest CtsPermissions3TestCases
atest CtsPermissions4TestCases
atest CtsPermissions5TestCases
atest CtsAppOpsTestCases
atest CtsAppOps2TestCases
Change-Id: Ib04585515d3dc3956966005ae9d94955b2f3ee08
|
|
Added SPDX-license-identifier-Apache-2.0 to:
apct-tests/perftests/autofill/Android.bp
apct-tests/perftests/blobstore/Android.bp
apct-tests/perftests/core/Android.bp
apct-tests/perftests/core/apps/overlay/Android.bp
apct-tests/perftests/core/apps/reources_manager/Android.bp
apct-tests/perftests/core/jni/Android.bp
apct-tests/perftests/multiuser/Android.bp
apct-tests/perftests/multiuser/apps/dummyapp/Android.bp
apct-tests/perftests/packagemanager/Android.bp
apct-tests/perftests/packagemanager/apps/query-all/Android.bp
apct-tests/perftests/textclassifier/Android.bp
apct-tests/perftests/utils/Android.bp
apct-tests/perftests/windowmanager/Android.bp
apex/Android.bp
apex/blobstore/framework/Android.bp
apex/blobstore/service/Android.bp
apex/jobscheduler/framework/Android.bp
apex/jobscheduler/service/Android.bp
apex/media/Android.bp
apex/media/aidl/Android.bp
apex/media/framework/Android.bp
cmds/am/Android.bp
cmds/app_process/Android.bp
cmds/appops/Android.bp
cmds/appwidget/Android.bp
cmds/backup/Android.bp
cmds/bmgr/Android.bp
cmds/bootanimation/Android.bp
cmds/bu/Android.bp
cmds/content/Android.bp
cmds/dpm/Android.bp
cmds/hid/Android.bp
cmds/hid/jni/Android.bp
cmds/idmap2/Android.bp
cmds/ime/Android.bp
cmds/incident/Android.bp
cmds/incident_helper/Android.bp
cmds/incidentd/Android.bp
cmds/input/Android.bp
cmds/interrupter/Android.bp
cmds/locksettings/Android.bp
cmds/pm/Android.bp
cmds/requestsync/Android.bp
cmds/screencap/Android.bp
cmds/sm/Android.bp
cmds/svc/Android.bp
cmds/telecom/Android.bp
cmds/uiautomator/Android.bp
cmds/uiautomator/cmds/uiautomator/Android.bp
cmds/uiautomator/instrumentation/Android.bp
cmds/uiautomator/library/Android.bp
cmds/vr/Android.bp
cmds/wm/Android.bp
config/Android.bp
core/java/android/service/wallpaper/Android.bp
core/jni/Android.bp
core/sysprop/Android.bp
core/tests/BroadcastRadioTests/Android.bp
core/tests/ConnectivityManagerTest/Android.bp
core/tests/PackageInstallerSessions/Android.bp
core/tests/PlatformCompatFramework/Android.bp
core/tests/bandwidthtests/Android.bp
core/tests/benchmarks/Android.bp
core/tests/bluetoothtests/Android.bp
core/tests/bugreports/Android.bp
core/tests/coretests/Android.bp
core/tests/coretests/BinderDeathRecipientHelperApp/Android.bp
core/tests/coretests/BinderProxyCountingTestApp/Android.bp
core/tests/coretests/BinderProxyCountingTestService/Android.bp
core/tests/coretests/BstatsTestApp/Android.bp
core/tests/coretests/DisabledTestApp/Android.bp
core/tests/coretests/EnabledTestApp/Android.bp
core/tests/coretests/aidl/Android.bp
core/tests/coretests/apks/Android.bp
core/tests/coretests/apks/install/Android.bp
core/tests/coretests/apks/install_bad_dex/Android.bp
core/tests/coretests/apks/install_complete_package_info/Android.bp
core/tests/coretests/apks/install_decl_perm/Android.bp
core/tests/coretests/apks/install_jni_lib/Android.bp
core/tests/coretests/apks/install_jni_lib_open_from_apk/Android.bp
core/tests/coretests/apks/install_loc_auto/Android.bp
core/tests/coretests/apks/install_loc_internal/Android.bp
core/tests/coretests/apks/install_loc_sdcard/Android.bp
core/tests/coretests/apks/install_loc_unspecified/Android.bp
core/tests/coretests/apks/install_use_perm_good/Android.bp
core/tests/coretests/apks/install_uses_feature/Android.bp
core/tests/coretests/apks/install_verifier_bad/Android.bp
core/tests/coretests/apks/install_verifier_good/Android.bp
core/tests/coretests/apks/keyset/Android.bp
core/tests/coretests/apks/locales/Android.bp
core/tests/coretests/apks/overlay_config/Android.bp
core/tests/coretests/apks/version/Android.bp
core/tests/coretests/apks/version_nosys/Android.bp
core/tests/featureflagtests/Android.bp
core/tests/hdmitests/Android.bp
core/tests/hosttests/test-apps/AutoLocTestApp/Android.bp
core/tests/hosttests/test-apps/AutoLocVersionedTestApp_v1/Android.bp
core/tests/hosttests/test-apps/AutoLocVersionedTestApp_v2/Android.bp
core/tests/hosttests/test-apps/ExternalLocAllPermsTestApp/Android.bp
core/tests/hosttests/test-apps/ExternalLocPermsFLTestApp/Android.bp
core/tests/hosttests/test-apps/ExternalLocTestApp/Android.bp
core/tests/hosttests/test-apps/ExternalLocVersionedTestApp_v1/Android.bp
core/tests/hosttests/test-apps/ExternalLocVersionedTestApp_v2/Android.bp
core/tests/hosttests/test-apps/ExternalSharedPerms/Android.bp
core/tests/hosttests/test-apps/ExternalSharedPermsBT/Android.bp
core/tests/hosttests/test-apps/ExternalSharedPermsDiffKey/Android.bp
core/tests/hosttests/test-apps/ExternalSharedPermsFL/Android.bp
core/tests/hosttests/test-apps/InternalLocTestApp/Android.bp
core/tests/hosttests/test-apps/MultiDexLegacyTestServicesTests/Android.bp
core/tests/hosttests/test-apps/NoLocTestApp/Android.bp
core/tests/hosttests/test-apps/NoLocVersionedTestApp_v1/Android.bp
core/tests/hosttests/test-apps/NoLocVersionedTestApp_v2/Android.bp
core/tests/hosttests/test-apps/SharedUid/32/Android.bp
core/tests/hosttests/test-apps/SharedUid/32/jni/Android.bp
core/tests/hosttests/test-apps/SharedUid/64/Android.bp
core/tests/hosttests/test-apps/SharedUid/64/jni/Android.bp
core/tests/hosttests/test-apps/SharedUid/dual/Android.bp
core/tests/hosttests/test-apps/SharedUid/dual/jni/Android.bp
core/tests/hosttests/test-apps/SharedUid/java_only/Android.bp
core/tests/hosttests/test-apps/SimpleTestApp/Android.bp
core/tests/hosttests/test-apps/UpdateExtToIntLocTestApp_v1_ext/Android.bp
core/tests/hosttests/test-apps/UpdateExtToIntLocTestApp_v2_int/Android.bp
core/tests/hosttests/test-apps/UpdateExternalLocTestApp_v1_ext/Android.bp
core/tests/hosttests/test-apps/UpdateExternalLocTestApp_v2_none/Android.bp
core/tests/hosttests/test-apps/VersatileTestApp_Auto/Android.bp
core/tests/hosttests/test-apps/VersatileTestApp_External/Android.bp
core/tests/hosttests/test-apps/VersatileTestApp_Internal/Android.bp
core/tests/hosttests/test-apps/VersatileTestApp_None/Android.bp
core/tests/mockingcoretests/Android.bp
core/tests/notificationtests/Android.bp
core/tests/overlaytests/device/Android.bp
core/tests/overlaytests/device/test-apps/AppOverlayOne/Android.bp
core/tests/overlaytests/device/test-apps/AppOverlayTwo/Android.bp
core/tests/overlaytests/device/test-apps/FrameworkOverlay/Android.bp
core/tests/overlaytests/host/Android.bp
core/tests/overlaytests/remount/Android.bp
core/tests/overlaytests/remount/test-apps/Overlay/Android.bp
core/tests/overlaytests/remount/test-apps/SharedLibrary/Android.bp
core/tests/overlaytests/remount/test-apps/SharedLibraryOverlay/Android.bp
core/tests/overlaytests/remount/test-apps/Target/Android.bp
core/tests/packagemanagertests/Android.bp
core/tests/privacytests/Android.bp
core/tests/screenshothelpertests/Android.bp
core/tests/systemproperties/Android.bp
core/tests/utillib/Android.bp
core/tests/utiltests/Android.bp
core/tests/utiltests/jni/Android.bp
core/tests/uwbtests/Android.bp
core/xsd/Android.bp
core/xsd/vts/Android.bp
data/etc/Android.bp
data/etc/car/Android.bp
data/fonts/Android.bp
data/keyboards/Android.mk
drm/jni/Android.bp
errorprone/Android.bp
graphics/proto/Android.bp
keystore/Android.bp
keystore/tests/Android.bp
libs/WindowManager/Jetpack/Android.bp
libs/WindowManager/Shell/Android.bp
libs/WindowManager/Shell/tests/Android.bp
libs/androidfw/Android.bp
libs/androidfw/fuzz/resourcefile_fuzzer/Android.bp
libs/hostgraphics/Android.bp
libs/incident/Android.bp
libs/input/Android.bp
libs/input/tests/Android.bp
libs/protoutil/Android.bp
libs/services/Android.bp
libs/storage/Android.bp
libs/usb/tests/AccessoryChat/Android.bp
libs/usb/tests/AccessoryChat/accessorychat/Android.bp
location/lib/Android.bp
location/tests/Android.bp
location/tests/locationtests/Android.bp
lowpan/tests/Android.bp
media/Android.bp
media/java/Android.bp
media/java/android/media/tv/tunerresourcemanager/Android.bp
media/jni/Android.bp
media/jni/audioeffect/Android.bp
media/jni/soundpool/Android.bp
media/jni/soundpool/tests/Android.bp
media/lib/remotedisplay/Android.bp
media/lib/signer/Android.bp
media/lib/tvremote/Android.bp
media/lib/tvremote/tests/Android.bp
media/mca/filterfw/Android.bp
media/mca/filterfw/native/Android.bp
media/mca/filterpacks/Android.bp
media/mca/samples/CameraEffectsRecordingSample/Android.bp
media/mca/tests/Android.bp
media/native/midi/Android.bp
media/packages/BluetoothMidiService/Android.bp
media/packages/BluetoothMidiService/tests/unit/Android.bp
media/tests/AudioPolicyTest/Android.bp
media/tests/CameraBrowser/Android.bp
media/tests/EffectsTest/Android.bp
media/tests/MediaDump/Android.bp
media/tests/MediaFrameworkTest/Android.bp
media/tests/MediaRouter/Android.bp
media/tests/MtpTests/Android.bp
media/tests/ScoAudioTest/Android.bp
media/tests/SoundPoolTest/Android.bp
media/tests/TunerTest/Android.bp
media/tests/audiotests/Android.bp
media/tests/players/Android.bp
mime/Android.bp
native/android/Android.bp
native/graphics/jni/Android.bp
native/webview/loader/Android.bp
nfc-extras/Android.bp
nfc-extras/tests/Android.bp
packages/AppPredictionLib/Android.bp
packages/BackupEncryption/Android.bp
packages/BackupEncryption/test/robolectric-integration/Android.bp
packages/BackupEncryption/test/robolectric/Android.bp
packages/BackupEncryption/test/unittest/Android.bp
packages/BackupRestoreConfirmation/Android.bp
packages/CarSystemUI/Android.bp
packages/CarrierDefaultApp/Android.bp
packages/CarrierDefaultApp/tests/unit/Android.bp
packages/CompanionDeviceManager/Android.bp
packages/Connectivity/framework/Android.bp
packages/Connectivity/service/Android.bp
packages/CtsShim/Android.bp
packages/CtsShim/build/Android.bp
packages/CtsShim/build/jni/Android.bp
packages/DynamicSystemInstallationService/Android.bp
packages/DynamicSystemInstallationService/tests/Android.bp
packages/EasterEgg/Android.bp
packages/EncryptedLocalTransport/Android.bp
packages/ExtShared/Android.bp
packages/ExternalStorageProvider/Android.bp
packages/ExternalStorageProvider/tests/Android.bp
packages/FakeOemFeatures/Android.bp
packages/FusedLocation/Android.bp
packages/InputDevices/Android.bp
packages/LocalTransport/Android.bp
packages/PackageInstaller/Android.bp
packages/PrintRecommendationService/Android.bp
packages/PrintSpooler/Android.bp
packages/PrintSpooler/jni/Android.bp
packages/PrintSpooler/tests/outofprocess/Android.bp
packages/SettingsLib/ActionBarShadow/Android.bp
packages/SettingsLib/ActionButtonsPreference/Android.bp
packages/SettingsLib/AdaptiveIcon/Android.bp
packages/SettingsLib/Android.bp
packages/SettingsLib/AppPreference/Android.bp
packages/SettingsLib/BarChartPreference/Android.bp
packages/SettingsLib/DisplayDensityUtils/Android.bp
packages/SettingsLib/EntityHeaderWidgets/Android.bp
packages/SettingsLib/HelpUtils/Android.bp
packages/SettingsLib/LayoutPreference/Android.bp
packages/SettingsLib/ProgressBar/Android.bp
packages/SettingsLib/RadioButtonPreference/Android.bp
packages/SettingsLib/RestrictedLockUtils/Android.bp
packages/SettingsLib/SchedulesProvider/Android.bp
packages/SettingsLib/SearchProvider/Android.bp
packages/SettingsLib/SearchWidget/Android.bp
packages/SettingsLib/SettingsSpinner/Android.bp
packages/SettingsLib/SettingsTheme/Android.bp
packages/SettingsLib/Tile/Android.bp
packages/SettingsLib/Utils/Android.bp
packages/SettingsLib/search/Android.bp
packages/SettingsLib/tests/integ/Android.bp
packages/SettingsLib/tests/robotests/Android.bp
packages/SettingsProvider/Android.bp
packages/SharedStorageBackup/Android.bp
packages/Shell/Android.bp
packages/Shell/tests/Android.bp
packages/SimAppDialog/Android.bp
packages/SoundPicker/Android.bp
packages/StatementService/Android.bp
packages/SystemUI/Android.bp
packages/SystemUI/plugin/Android.bp
packages/SystemUI/plugin/ExamplePlugin/Android.bp
packages/SystemUI/plugin_core/Android.bp
packages/SystemUI/shared/Android.bp
packages/VpnDialogs/Android.bp
packages/WAPPushManager/Android.bp
packages/WAPPushManager/tests/Android.bp
packages/WallpaperBackup/Android.bp
packages/WallpaperCropper/Android.bp
packages/overlays/Android.mk
packages/overlays/tests/Android.bp
packages/services/PacProcessor/Android.bp
packages/services/PacProcessor/jni/Android.bp
packages/services/Proxy/Android.bp
proto/Android.bp
rs/jni/Android.mk
samples/demo/haptic-assessment/Android.bp
sax/tests/saxtests/Android.bp
services/Android.bp
services/accessibility/Android.bp
services/appprediction/Android.bp
services/appwidget/Android.bp
services/autofill/Android.bp
services/backup/Android.bp
services/backup/backuplib/Android.bp
services/companion/Android.bp
services/contentcapture/Android.bp
services/contentsuggestions/Android.bp
services/core/Android.bp
services/core/java/com/android/server/vcn/Android.bp
services/core/jni/Android.bp
services/core/xsd/Android.bp
services/core/xsd/vts/Android.bp
services/coverage/Android.bp
services/devicepolicy/Android.bp
services/incremental/Android.bp
services/midi/Android.bp
services/net/Android.bp
services/people/Android.bp
services/print/Android.bp
services/profcollect/Android.bp
services/restrictions/Android.bp
services/robotests/Android.bp
services/robotests/backup/Android.bp
services/systemcaptions/Android.bp
services/tests/PackageManagerComponentOverrideTests/Android.bp
services/tests/PackageManagerServiceTests/host/Android.bp
services/tests/PackageManagerServiceTests/host/test-apps/Android.bp
services/tests/mockingservicestests/Android.bp
services/tests/rescueparty/Android.bp
services/tests/servicestests/Android.bp
services/tests/servicestests/aidl/Android.bp
services/tests/servicestests/apks/Android.bp
services/tests/servicestests/apks/install-split-base/Android.bp
services/tests/servicestests/apks/install-split-feature-a/Android.bp
services/tests/servicestests/apks/install_intent_filters/Android.bp
services/tests/servicestests/apks/install_uses_sdk/Android.bp
services/tests/servicestests/test-apps/ConnTestApp/Android.bp
services/tests/servicestests/test-apps/JobTestApp/Android.bp
services/tests/servicestests/test-apps/PackageParserApp/Android.bp
services/tests/servicestests/test-apps/PackageParsingTestManifests/Android.bp
services/tests/servicestests/test-apps/SimpleServiceTestApp/Android.bp
services/tests/servicestests/test-apps/SuspendTestApp/Android.bp
services/tests/shortcutmanagerutils/Android.bp
services/tests/uiservicestests/Android.bp
services/tests/wmtests/Android.bp
services/usage/Android.bp
services/usb/Android.bp
services/voiceinteraction/Android.bp
services/wifi/Android.bp
startop/apps/test/Android.bp
startop/iorap/Android.bp
startop/iorap/functional_tests/Android.bp
startop/iorap/stress/Android.bp
startop/iorap/tests/Android.bp
startop/view_compiler/Android.bp
startop/view_compiler/dex_builder_test/Android.bp
test-base/hiddenapi/Android.bp
test-mock/Android.bp
test-runner/tests/Android.bp
tests/AccessibilityEventsLogger/Android.bp
tests/AccessoryDisplay/common/Android.bp
tests/AccessoryDisplay/sink/Android.bp
tests/AccessoryDisplay/source/Android.bp
tests/ActivityManagerPerfTests/stub-app/Android.bp
tests/ActivityManagerPerfTests/test-app/Android.bp
tests/ActivityManagerPerfTests/tests/Android.bp
tests/ActivityManagerPerfTests/utils/Android.bp
tests/ActivityTests/Android.bp
tests/ActivityViewTest/Android.bp
tests/AmSlam/Android.bp
tests/ApkVerityTest/Android.bp
tests/ApkVerityTest/ApkVerityTestApp/Android.bp
tests/ApkVerityTest/block_device_writer/Android.bp
tests/AppLaunch/Android.bp
tests/AppLaunchWear/Android.bp
tests/AppResourcesLoaders/Android.bp
tests/AppResourcesLoaders/Overlay/Android.bp
tests/Assist/Android.bp
tests/AutoVerify/app1/Android.bp
tests/AutoVerify/app2/Android.bp
tests/AutoVerify/app3/Android.bp
tests/AutoVerify/app4/Android.bp
tests/BackgroundDexOptServiceIntegrationTests/Android.bp
tests/BandwidthTests/Android.bp
tests/BatteryWaster/Android.bp
tests/BiDiTests/Android.bp
tests/BlobStoreTestUtils/Android.bp
tests/BootImageProfileTest/Android.bp
tests/BrowserPowerTest/Android.bp
tests/Camera2Tests/SmartCamera/SimpleCamera/jni/Android.bp
tests/CameraPrewarmTest/Android.bp
tests/Codegen/Android.bp
tests/Compatibility/Android.bp
tests/CoreTests/android/Android.bp
tests/DataIdleTest/Android.bp
tests/DozeTest/Android.bp
tests/DpiTest/Android.bp
tests/DynamicCodeLoggerIntegrationTests/Android.mk
tests/FeatureSplit/base/Android.bp
tests/FeatureSplit/feature1/Android.bp
tests/FeatureSplit/feature2/Android.bp
tests/FixVibrateSetting/Android.bp
tests/FlickerTests/Android.bp
tests/FlickerTests/test-apps/Android.bp
tests/FlickerTests/test-apps/flickerapp/Android.bp
tests/FrameworkPerf/Android.bp
tests/GamePerformance/Android.bp
tests/GridLayoutTest/Android.bp
tests/HierarchyViewerTest/Android.bp
tests/HugeBackup/Android.bp
tests/HwAccelerationTest/Android.bp
tests/Internal/Android.bp
tests/JankBench/Android.bp
tests/JobSchedulerPerfTests/Android.bp
tests/JobSchedulerTestApp/Android.bp
tests/LargeAssetTest/Android.bp
tests/LegacyAssistant/Android.bp
tests/LocalizationTest/Android.bp
tests/LocationTracker/Android.bp
tests/LotsOfApps/Android.bp
tests/LowStorageTest/Android.bp
tests/ManagedProfileLifecycleStressTest/Android.bp
tests/ManagedProfileLifecycleStressTest/app/DummyDPC/Android.bp
tests/MemoryUsage/Android.bp
tests/MirrorSurfaceTest/Android.bp
tests/NativeProcessesMemoryTest/Android.bp
tests/NetworkSecurityConfigTest/Android.bp
tests/NullHomeTest/Android.bp
tests/OdmApps/Android.bp
tests/OdmApps/app/Android.bp
tests/OdmApps/priv-app/Android.bp
tests/OneMedia/Android.bp
tests/PackageWatchdog/Android.bp
tests/PlatformCompatGating/Android.bp
tests/PlatformCompatGating/test-rules/Android.bp
tests/ProtoInputStreamTests/Android.bp
tests/RemoteDisplayProvider/Android.bp
tests/RenderThreadTest/Android.bp
tests/RollbackTest/Android.bp
tests/SerialChat/Android.bp
tests/ServiceCrashTest/Android.bp
tests/SharedLibrary/client/Android.bp
tests/SharedLibrary/lib/Android.bp
tests/ShowWhenLockedApp/Android.bp
tests/SmokeTest/Android.bp
tests/SmokeTest/tests/Android.bp
tests/SmokeTestApps/Android.bp
tests/SoundTriggerTestApp/Android.bp
tests/Split/Android.bp
tests/StagedInstallTest/Android.bp
tests/StatusBar/Android.bp
tests/SurfaceComposition/Android.bp
tests/SurfaceControlViewHostTest/Android.bp
tests/SystemMemoryTest/device/Android.bp
tests/SystemMemoryTest/host/Android.bp
tests/SystemUIDemoModeController/Android.bp
tests/TaskOrganizerTest/Android.bp
tests/TelephonyCommonTests/Android.bp
tests/TouchLatency/Android.bp
tests/TransformTest/Android.bp
tests/TtsTests/Android.bp
tests/UiBench/Android.bp
tests/UsageReportingTest/Android.bp
tests/UsageStatsPerfTests/Android.bp
tests/UsageStatsTest/Android.bp
tests/UsbHostExternalManagmentTest/AoapTestDevice/Android.bp
tests/UsbHostExternalManagmentTest/AoapTestHost/Android.bp
tests/UsbHostExternalManagmentTest/UsbHostExternalManagmentTestApp/Android.bp
tests/UsbManagerTests/Android.bp
tests/UsbManagerTests/lib/Android.bp
tests/UsbTests/Android.bp
tests/UsesFeature2Test/Android.bp
tests/VectorDrawableTest/Android.bp
tests/VoiceEnrollment/Android.bp
tests/VoiceInteraction/Android.bp
tests/WallpaperTest/Android.bp
tests/WindowAnimationJank/Android.bp
tests/WindowInsetsTests/Android.bp
tests/appwidgets/AppWidgetHostTest/Android.bp
tests/appwidgets/AppWidgetProviderTest/Android.bp
tests/backup/Android.mk
tests/benchmarks/Android.bp
tests/libs-permissions/Android.bp
tests/net/Android.bp
tests/net/common/Android.bp
tests/net/deflake/Android.bp
tests/net/integration/Android.bp
tests/net/jni/Android.bp
tests/net/smoketest/Android.bp
tests/notification/Android.bp
tests/permission/Android.bp
tests/privapp-permissions/Android.bp
tests/testables/Android.bp
tests/testables/tests/Android.bp
tests/utils/StubIME/Android.bp
tests/utils/hostutils/Android.bp
tests/utils/testutils/Android.bp
tests/vcn/Android.bp
tools/aapt/Android.bp
tools/aapt2/Android.bp
tools/aapt2/integration-tests/AutoVersionTest/Android.bp
tools/aapt2/integration-tests/BasicTest/Android.bp
tools/aapt2/integration-tests/MergeOnlyTest/LeafLib/Android.mk
tools/aapt2/integration-tests/MergeOnlyTest/LocalLib/Android.mk
tools/aapt2/integration-tests/NamespaceTest/LibOne/Android.mk
tools/aapt2/integration-tests/NamespaceTest/LibTwo/Android.mk
tools/aapt2/integration-tests/StaticLibTest/App/Android.bp
tools/aapt2/integration-tests/StaticLibTest/LibOne/Android.bp
tools/aapt2/integration-tests/StaticLibTest/LibTwo/Android.bp
tools/aapt2/integration-tests/SymlinkTest/Android.bp
tools/bit/Android.bp
tools/codegen/Android.bp
tools/dump-coverage/Android.bp
tools/incident_report/Android.bp
tools/incident_section_gen/Android.bp
tools/lock_agent/Android.bp
tools/locked_region_code_injection/Android.bp
tools/obbtool/Android.bp
tools/powermodel/Android.bp
tools/preload-check/Android.bp
tools/preload-check/device/Android.bp
tools/preload/loadclass/Android.bp
tools/processors/staledataclass/Android.bp
tools/processors/view_inspector/Android.bp
tools/protologtool/Android.bp
tools/sdkparcelables/Android.bp
tools/split-select/Android.bp
tools/streaming_proto/Android.bp
tools/validatekeymaps/Android.bp
wifi/java/Android.bp
wifi/tests/Android.bp
Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD to:
libs/hwui/Android.bp
native/webview/plat_support/Android.bp
obex/Android.bp
Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD
SPDX-license-identifier-CC-BY SPDX-license-identifier-CPL-1.0
SPDX-license-identifier-GPL SPDX-license-identifier-GPL-2.0
SPDX-license-identifier-MIT SPDX-license-identifier-Unicode-DFS
SPDX-license-identifier-W3C legacy_unencumbered
to:
Android.bp
Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD
legacy_unencumbered
to:
core/java/Android.bp
Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-CPL-1.0
to:
test-base/Android.bp
test-runner/Android.bp
Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-GPL
to:
core/res/Android.bp
Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-GPL-2.0
to:
libs/usb/Android.bp
libs/usb/tests/accessorytest/Android.bp
Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-MIT
to:
tools/preload/Android.bp
Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-MIT
SPDX-license-identifier-Unicode-DFS
to:
api/Android.bp
boot/Android.bp
cmds/device_config/Android.bp
cmds/settings/Android.bp
core/api/Android.bp
core/tests/coretests/certs/Android.bp
core/tests/overlaytests/remount/test-apps/certs/Android.bp
core/tests/overlaytests/remount/test-apps/overlaid_apex/Android.bp
core/tests/overlaytests/remount/test-apps/overlay_apex/Android.bp
libs/tracingproxy/Android.bp
services/startop/Android.bp
test-legacy/Android.mk
tests/ApkVerityTest/testdata/Android.bp
tests/TransitionTests/Android.bp
Bug: 68860345
Bug: 151177513
Bug: 151953481
Test: m all
Exempt-From-Owner-Approval: janitorial work
Change-Id: Ib9737d8fb5ef5b90a2c14fe71f1a571079edcf02
Merged-In: Ib9737d8fb5ef5b90a2c14fe71f1a571079edcf02
|
|
Bug: 174932174
Test: I solemnly swear I tested this conflict resolution.
Exempt-From-Owner-Approval: refactoring with team leads buy-in
Change-Id: I9262a08ffc1ccede8e519d0eed90ed2bfcf0232c
|
|
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1519384
MUST ONLY BE SUBMITTED BY AUTOMERGER
Change-Id: Ifdc390f5ae046c515a30158f3f55b831be147547
|
|
As general background, OWNERS files expedite code reviews by helping
code authors quickly find relevant reviewers, and they also ensure
that stakeholders are involved in code changes in their areas.
Some teams under frameworks/base/ have been using OWNERS files
successfully for many years, and we're ready to expand them to cover
more areas. Here's the historical coverage statistics for the last
two years of changes before these new OWNERS changes land:
-- 56% of changes are fully covered by OWNERS
-- 17% of changes are partially covered by OWNERS
-- 25% of changes have no OWNERS coverage
Working closely with team leads, we've now identified clear OWNERS on
a per-package basis, and we're using "include" directives whenever
possible to to simplify future maintenance. With this extensive
effort, we've now improved our coverage as follows:
-- 98% of changes are fully covered by OWNERS
-- 1% of changes are partially covered by OWNERS
-- 1% of changes have no OWNERS coverage
This specific change is automatically generated by a script that
identifies relevant "include" directives.
Bug: 174932174
Test: manual
Exempt-From-Owner-Approval: refactoring with team leads buy-in
Merged-In: I3480ddf2fe7ba3dfb922b459d4da01fa17a2c813
Change-Id: I3480ddf2fe7ba3dfb922b459d4da01fa17a2c813
|
|
This works for target R+ apps, but need to come up with a better story
for target <R. The enforcement in DocumentsUI is target SDK based
and those apps bypass the block_tree flag.
Bug: 157320644
Test: atest DocumentsTest
Change-Id: I93aea7cd5d3b7befea1f78e1cf3f31f8250f1d33
|
|
We've been writing many new framework-specific Error Prone checkers
to help detect obscure platform bugs, and this change starts enabling
those checkers for more packages across the platform.
Bug: 155703208
Test: manual
Exempt-From-Owner-Approval: trivial blueprint changes
Change-Id: I1db3412b0be40f6f78c68331ae01756887192071
|
|
When the file is deleted, renamed or moved, revoke all uri
permissions with the file
Bug: 157474195
Test: manual test with DocumentsUI
Test: atest DocumentsTest#testAfterMoveDocumentInStorage_revokeUriPermission
Change-Id: I4ffb183630aadb2d87b0965e8cecf88af15f4534
Merged-In: I4ffb183630aadb2d87b0965e8cecf88af15f4534
(cherry picked from commit 9efd606f43abe36f9fcf7f0d1ab0d059c51be514)
|
|
When the file is deleted, renamed or moved, revoke all uri
permissions with the file
Bug: 157474195
Test: manual test with DocumentsUI
Test: atest DocumentsTest#testAfterMoveDocumentInStorage_revokeUriPermission
Change-Id: I4ffb183630aadb2d87b0965e8cecf88af15f4534
|
|
b3967b656d am: d60a648f6b am: 0efc5132dc am: 81e2908ce8
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11808678
Change-Id: I81a7d8344b72493d2b1aea9c51b3b487c247751b
|
|
|
|
am: e445872013 am: 9ad0db624f am: df420898ba am: 5653bed177
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11815146
Change-Id: Ic4e2610a51f0b479069aa033e54c4f070f145956
|
|
This change fastens the first call to DocumentsUI after reboot.
Bug: 155819706
Test: builds (fastens the first call to DocumentsUI by 600-800ms)
Change-Id: Id8396e36ed8aa1ded79d93a2f1ed140bf903184b
|
|
Test: atest DocumentsUIGoogleTests
Bug: 158142289
Change-Id: Id46ac014ad87af052b684e21b9242f762d7db80a
|
|
am: e0ae189f8a am: d0772d278e am: 1b712aea0a am: 3fb52c039a
Change-Id: I3a8f89ac0e7e8eae5b16d4861ab8925180ded193
|
|
In Scoped Storage world, access to "Android/data" style directories are
hidden for privacy reasons. Allow ExternalStorageProvider to show these
hidden files when in manage mode.
Bug: 150366834
Test: Android/data and Android/obb is visible from Files App, but are
hidden in Picker view from StorageTestApp and Gmail (GMAIL > Compose >
Attach > Go to Pixel > Android)
Change-Id: I58b4fc23d9b479df4fc0480ae55f1f2070d0cb7c
|
|
into rvc-dev am: cdb1ce47f9 am: ca462526e6 am: 5abc8b5b35 am: 569b5aaa8d
Change-Id: I39512ca71673cc813b43e9fffa63508673a9f527
|
|
into rvc-dev
|
|
We were listening to volume state changes in the
ExternalStorageProvider with the VOLUME_STATE_CHANGED broadcast in the
MountReceiver.
This broadcast can be severly delayed especially on user startup so we
also listen with the StorageEventListener which is more performant.
Test: Manual
Bug: 154332660
Change-Id: I93c43f3b53c0a71cd6aa7cf594fe6988f4bc3f6e
|
|
am: 1221584792 am: fbd997b61e am: ad0ad64da0
Change-Id: I903a79f2dce3a30983feca709ea61ad0d0375b93
|
|
Test: atest DocumentsUIGoogleTests
Bug: 155139904
Change-Id: I5454c1cc48e2d4489218b5795c98bd0f9526c6ab
|
|
8dd835563d am: 9c74891698 am: 87926019af
Change-Id: I69d6b7aad0f4fba62d4f366fc0efc836bbc3d6ac
|
|
Test: atest DocumentsUIGoogleTests
Bug: 154502439, 151981237
Change-Id: I85b673d31b2353cf4c65917bb44ef270f2c53128
|
|
With b/150232615, we will need an explicit value set for the exported
flag when intent filters are present, as the default behavior is
changing for S+. This change adds the value reflecting the previous
default to the manifest.
Bug: 150232615
Test: TH
Change-Id: I0266b557d1c825c03508fe1a8ebdbbec39762633
|
|
We add new Documents root in MediaDocumentsProvider.
Remove unused Documents root in ExternalStorageProvider.
Bug: 148043686
Test: manual with DocumentsUI
Change-Id: I4278aa79cb1a9e22007b2946f8196d2a070be2c8
|
|
|
|
This permission will allow it access unreliable USB OTG volumes and
also service other SAF requests on the external storage.
Test: m
Bug: 144914977
Change-Id: I92f046a06852d5ba842764d8348a498b2b6ad0b7
|
|
Test: Manual
Bug: 147755862
Change-Id: I3b9c386a8015a8254ec4ee0b1dc9b18546971891
|
|
Now that emulated volumes are per user, ESP should not register
any volume that does not match it's running user.
Bug: 144936488
Test: On device with secondary user, Files > Show internal storage
displays "internal storage"
Change-Id: If4820c684a0a8ef52cc97ae9087b1a0884f9cee7
|
|
Recent work has paved the way to get MediaStore.java building against
"core_platform", and this change is actually shifting MediaStore.java
inside the MediaProvider APEX boundary.
This involves defining a new "updatable-mediaprovider" library JAR
and ensuring that it's spliced into classpaths where needed to keep
everything building and working.
Note that the MediaProvider APK itself is still bundled, so we're
manually including the MediaStore.java when building that APK so that
we can continue referencing @hide symbols, but there's a STOPSHIP
comment to remove that once we get the APK building against
"system_current".
Bug: 144247087
Test: atest --test-mapping packages/providers/MediaProvider
Change-Id: I27ed3fde40751d9ac136a31710c62004b1b8962f
|
|
Remove the logic of using file path directly.
Parse the docId to get the relative path.
Test: atest ExternalStorageProviderTest
Change-Id: Ic218813acc73e247ee5593ed9e8e7688760e6780
Fix: 144467519
|
|
Up until now, the FUSE mount logic has made two assumptions:
1. The primary external volume is an emulated volume on /data/media
2. Only the primary user is running, as user zero
With this change, we are able to handle the following cases:
1. Mount new external storage volumes as as portable storage
(PublicVolume) managed by FUSE. The PublicVolume originally mounted on
/mnt/media_rw/<uuid> is availabe on /storage/<uuid> as a FUSE mount
2. Mount new external storage volumes as adoptable storage
(PrivateVolume) with a stacked EmulatedVolume managed by FUSE. The
EmulatedVolume orignally mounted on /mnt/expand/<uuid>/media will be
available on /storage/emulated if set as the primary storage
3. Run the MediaProvider as a secondary user handling requests on
/mnt/user/<userid>/<volid>
Test: atest AdoptableHostTest
Bug: 135341433
Bug: 140120303
Change-Id: I5fb48616b4143277ea14c6846037e2fd176e16db
|
|
Change-Id: I7a8a9b598689bb9ad2e18d27de05e8334ee7b41e
Auto-generated-cl: translation import
|
|
This takes the Context#getFeatureId from the calling context and pipes
it all way through to the noteOp calls done by the content provider.
Bug: 136595429
Test: atest CtsAppOpsTestCases (new test added to capture this case)
TelecomUnitTests:CallLogManagerTest
ContentProviderClientTest
TelecomUnitTests:MissedCallNotifierImplTest
TelecomUnitTests:BasicCallTests
MediaInserterTest
PreferencesHelperTest
RankingHelperTest
PinnedSliceStateTest
FrameworksCoreTests:ContentResolverTest
Change-Id: I53b1035626229c920b353509a5bece157b52fb51
|
|
DocumentsContract
- Add new flag FLAG_DIR_BLOCKS_TREE in Document
ExternalStorageProvider
- Add flag into DocumentInfo for blocking folder
Change-Id: Ib557fe99d330788a3bd968bffd43b6658761514f
Bug: 32370759
Test: atest DocumentsTest
|
|
Change-Id: Iab86bc7039dc430d19c6c8003ab1fd30a76e380c
Auto-generated-cl: translation import
|
|
We need to return visible paths for MediaProvider to work with,
instead of internal paths.
Bug: 133730441
Test: atest android.providerui.cts.MediaStoreUiTest
Change-Id: If06dc635b22032761626cf54b37b7bc15ace7b2e
|
|
Change-Id: I5d9ed79b13c8a2af09d6909473ae42a95d8452ad
Auto-generated-cl: translation import
|
|
DocumentsContract:
- Add @Public column Root#COLUMN_QUERY_ARGS
- Update java doc
DocumentsProvider:
- Update java doc
FileSystemProvider & ExternalStorageProvider
- Add supported query args into Roots
Bug: 121234248
Test: manual
Change-Id: Ia944200ee1a44d75c9ad683564218e3d0dcef885
|
|
androidx.test"
|
|
See go/jetpack-test-android-migration
Test: make checkbuild
Change-Id: I20090d9bd41f91d239181e42754452d46ec2f3ff
|
|
Change-Id: I6894bad24fa7757dee1028a31ba0b07701baa7b3
Fixes: 119519300
Test: manually using ApiDemos Content > Storage > Documents
|
|
7f656092df am: 0fe81d7320
am: 29ce4d5fda
Change-Id: I815654df758200596b949943738608cd42ecdc40
|
|
7f656092df
am: 0fe81d7320
Change-Id: Ia2b865c56a92265151444b4b7310b61c51a9a952
|
|
Hide eject icon of removable media on the root list of Files app when
primary shared storage is in adopted media due to the following reasons.
- Primary shared storage should not be easily ejected because that
causes the situation that there's no primary shared storage
- To align with the Storage settings (Settings > Storage), eject icon
is disabled in this menu when the removable media is adopted
- Eject action from Files app can only unmount primary shared storage
Bug: 117252468
Test: manual
Change-Id: Idd76229fb10db621a817afd60295787c761345b1
|
|
1. Add the key of query arguments and match method
in DocumentsContract.
2. Implement new querySearchDocuments method in
DocumentsProvider, ExternalStoragProvider and
FileSystemProvider.
Bug: 111786939
Test: Manual Test
Change-Id: I04e9f2be971f10ac1e9584a3486c948aaddea0a4
|
|
am: ee32e0d473
Change-Id: I4098132df9833b7cbac0db9bdadac297d324a822
|
|
am: eb871cc916
Change-Id: I69240d32659b511aec0e1e029fb6c6f1ab455c9c
|
|
Bug: 110380403
Test: Tested in ARC++ (with Settings and vold changes in separate CLS)
- able to see the external storage under StorageSettings. Also tested
the sm command to print stubvolumes.
Change-Id: I7517260a40399bd9800424bb394512601f6af617
|
|
Upcoming changes will prevent apps from reading "_data" columns
directly, which is required to convert between DocumentsProvider and
MediaProvider Uris. To solve this, delegate the call() through
MediaProvider, where it can perform the "_data" lookup on behalf
of the caller.
Also add new getMediaUri() call to offer symmetry.
Bug: 111960973, 117627072, 110961701
Test: atest android.provider.cts.MediaStoreUiTest
Change-Id: I53c640704d86047d7a4bf1702aca027873395abf
|