Commit Graph

10702 Commits

Author SHA1 Message Date
Svet Ganov
2eebf92965 Switch media fw permissions checks to AttributionSource
Attribution source is the abstraction to capture the data
flows for private data across apps. Checking permissions
for an attribution source does this for all apps in the
chain that would receive the data as well as the relevant
app ops are checked/noted/started as needed.

Teach speech recognition service about attribution
chains. If an implementation does nothing the OS
would enforce permisisons and do blame as always.
This apporach leads to double blaming and doesn't
support attribition chains where app calls into
the default recognizer which calls into the on
device recognizer (this nests recursively). If the
implementer takes advantage of the attribution chain
mechanims the permissions for the entire chain are
checked at mic access time and all apps are blamed
only once.

Fixed a few bugs around finishing ops for attribution
chains. Also ensured that any app death in a started
attribution chain would lead to finishing the op for
this app

bug: 158792096

Test: (added tests for speech reco)
      atest CtsMediaTestCases
      atest CtsPermissionTestCases
      atest CtsPermission2TestCases
      atest CtsPermission3TestCases
      atest CtsPermission4TestCases
      atest CtsPermission5TestCases
      atest CtsAppOpsTestCases
      atest CtsAppOps2TestCases

Merged-In: Ic92c7adc14bd2d135ac13b96f17a1b393dd562e4

Change-Id: Ic92c7adc14bd2d135ac13b96f17a1b393dd562e4
2021-06-01 23:43:29 +00:00
Ryan Mitchell
488522c9c5 Merge changes from topic "inc-dis" into sc-dev
* changes:
  Disable incremental hardening on own resources
  StringBlock incremental hardening default values
2021-05-27 21:31:04 +00:00
Ryan Mitchell
c0416698db Disable incremental hardening on own resources
When an application is incrementally installed, and a resources
operation fails due to the resources not being fully present,
the app should crash instead of swallowing the error and
returning default values to not alter the experience of
using the application.

Disable IncFsFileMap protections on ApkAssets that are a part of the
application that is running (base and splits).

Bug: 187220960
Test: atest ResourcesHardeningTest
Change-Id: Ibc67aca688720f983c7c656f404593285a54999b
2021-05-27 09:50:36 -07:00
Ryan Mitchell
bef47a3577 StringBlock incremental hardening default values
When a string cannot be retrieved from a StringBlock due to pages of
the StringPool missing, rather than throwing an
IndexOutOfBoundsException, compute a default value rather that
abides by the API contacts of the functions that use the StringBlock.

IndexOutOfBoundsExceptions are not really documented as a possible
exception that can be thrown from APIs that use StringBlock because
it indicates that the binary resource table was built incorrectly.

Returning default values is much less likely to break applications
that fetch the resources of incrementally installed applications than
throwing IndexOutOfBoundsExceptions where they would normally not be
expected.

Bug: 188174746
Test: atest ResourcesHardeningTest
Change-Id: I58fe754fb446fefc031ddba19e290830fdd6d015
2021-05-26 16:01:38 -07:00
Hai Zhang
bf8849c1ef Merge "Update permission group mapping API doc according to API review." into sc-dev 2021-05-26 22:10:04 +00:00
Hai Zhang
0f64fa7228 Update permission group mapping API doc according to API review.
Fixes: 189189426
Test: presubmit
Change-Id: I8bd910d035d1cd5d772c6535887a09432ece12f9
2021-05-26 19:38:18 +00:00
Makoto Onuki
91a1e64991 Remove BIND_ALLOW_BACKGROUND_ACTIVITY_STARTS
We ended up defaulting to this behavior, so we no longer need this flag.

Bug: 189235490
Bug: 188057823
Test: Build
Change-Id: I62e383978d9b168657f2eac2e6bf4337a91b909b
2021-05-25 12:51:04 -07:00
TreeHugger Robot
09a4771708 Merge "Update javadoc for ACTION_VIEW_PERMISSION_USAGE" into sc-dev 2021-05-25 03:17:56 +00:00
Guojing Yuan
5a67ef6b76 Update javadoc for ACTION_VIEW_PERMISSION_USAGE
Bug: 176902658

Test: N/A
Change-Id: Ic4928fed75ad986c13af704d13985602ba972553
2021-05-25 00:27:01 +00:00
Erik Wolsheimer
350fa3e8b0 Describe time base/units on ACTION_VIEW_PERMISSION_USAGE_FOR_PERIOD
Bug: 188084977
Test: NA
Change-Id: I25aa1d6419cdec8f0a9508948451be9edbffa964
2021-05-24 17:20:06 -07:00
Tom Natan
c4cf09baa4 Merge "Add support for switching off sandboxing via device config flags" into sc-dev 2021-05-24 15:23:35 +00:00
Calin Juravle
dd8b94557d Merge "Update the use of registerAppInfo" into sc-dev 2021-05-21 20:29:17 +00:00
Hai Zhang
5044308999 Merge "Expose platform permission group mapping as public API." into sc-dev 2021-05-21 17:26:10 +00:00
Calin Juravle
2d2bd54bd5 Update the use of registerAppInfo
Pass additional parameters to ART to assist with better profiling
and debuggability.

(cherry picked from commit 3e308c6270)

Test: m
Bug: 182793486
Bug: 185979271

Merged-In: Iae0beab92194d75f191147578922c760f04470b9
Change-Id: Iae0beab92194d75f191147578922c760f04470b9
2021-05-21 14:13:03 +00:00
Hai Zhang
8bda34c493 Expose platform permission group mapping as public API.
The API is moved from PermissionControllerManager (only a System API)
to PackageManager to expose it as public API.

Bug: 182094776
Test: atest GetPermissionGroupInfoTest
Change-Id: I175afb2e37bf2651b91765029645f7940f58f39c
2021-05-21 03:03:56 +00:00
Rhed Jao
6dc12d80fa Merge "Throttle the repeated silent installation requests" into sc-dev 2021-05-21 01:35:58 +00:00
Erik Wolsheimer
afbc4fee9d Add application-level 'attributionsAreUserVisible' attribute
Bug: 176902658
Test: Manual
Change-Id: I56dc9caa6d98b75bc6732bbca0e5adc67bb745e5
2021-05-20 21:07:14 +00:00
Winson Chiu
17eb3ba04e Merge "Reset target sdk version of ParseTypeImpl" into sc-dev 2021-05-20 17:53:20 +00:00
liulvping
177a7200ab Reset target sdk version of ParseTypeImpl
In device booting, PackageParser2 uses a thread
local ParseTypeImpl obj as shared result and reset
it before parsing everty time. But it doesn't reset
the target sdk version, which could make deferError
returned unexpected error, cause apk scaned failed
and deleted by the system.

Bug: 188523844

Test: atest com.android.server.pm.parsing

Signed-off-by: liulvping <liulvping@xiaomi.com>

Merged-In: Ie6fbc4b79e94943c9282206b1ef6d20b4129fa0b
Change-Id: Ie6fbc4b79e94943c9282206b1ef6d20b4129fa0b
2021-05-20 15:58:39 +00:00
Corina Grigoras
b84e828974 Merge "Clarify javadocs about mode to parse file." into sc-dev 2021-05-20 14:10:22 +00:00
tomnatan
021a43c4be Add support for switching off sandboxing via device config flags
Bug: 187408243
Test: atest WmTests:SizeCompatTests
Test: atest FrameworksCoreTests:ConstrainDisplayApisConfigTest
Change-Id: I3ec02f3b2ba5c1825cdc530fd0f6f71abbe5bd10
2021-05-20 11:35:14 +00:00
Rhed Jao
ec065a8333 Throttle the repeated silent installation requests
To avoid a non-system installer repeatedly silent updates and
'denial-of-service' against another app on the device. This CL
tracks for all the silent updated installs where the
`requireUserAction' is not required. And fall back to user
action required if a repeated silent update is requested within
the throttle time.

Bug: 185878964
Test: atest SilentUpdateHostsideTests
Test: atest StagingManagerTest
Test: atest PackageInstallerSessionTest
Change-Id: I4ea287bf66d8661eec2676b604f9109f6f9add28
Merged-In: I4ea287bf66d8661eec2676b604f9109f6f9add28
2021-05-20 11:02:36 +08:00
TreeHugger Robot
ee438f960a Merge "Deprecate Context#createApplicationContext" into sc-dev 2021-05-19 15:35:09 +00:00
James O'Leary
671019f95c Merge "Connect ColorStateList to CAM" into sc-dev 2021-05-18 23:44:22 +00:00
Corina
8cd8c9901d Clarify javadocs about mode to parse file.
Bug: 185900460
Test: atest
Change-Id: I72b743affd9c1c47650c4249e855676203033f5e
2021-05-18 17:17:27 +00:00
Ryan Mitchell
c54ebba25b Deprecate Context#createApplicationContext
If an application caches an ApplicationInfo and uses it to call
Context#createApplicationContext, the app will not get the most recent
version of the overlays for that application. To make things worse, the
LoadedApk stored in ActivityThread#mResourcePackages is updated using
the old ApplicationInfo causing further uses of the cached LoadedApk to
return outdated information.

Deprecate Context#createApplicationContext, convert all internal uses
to Context#createPackageContext(String packageName, ...) and log
whenever any one calls Context#createApplicationContext with an
outdated ApplicationInfo to detect debug issues in using old infos.

Bug: 188059515
Test: change wallpaper and observe widgets get reloaded with most
      recent overlays
Change-Id: I2aeefa8c0e66264859109975a54c4f73f76ad710
2021-05-18 09:07:58 -07:00
Alexander Dorokhine
72ac81f5df Merge "Update framework from jetpack" into sc-dev 2021-05-18 01:17:30 +00:00
TreeHugger Robot
8a6ffdc597 Merge "Revert "Temporary stop-gap for Chrome target SDK issue."" into sc-dev 2021-05-17 23:32:25 +00:00
Alexander Dorokhine
a6d8d8e66c Update framework from jetpack
Included changes:
* b692f37: Rename `Int64` in annotation processor to `Long`.
* 05fe08c: Get QueryLength from Native
* 8f46606: Logging stats for remove (1)
* 237c134: Alter inheritance of LongProperty for backwards compatibility.

Bug: 187820569
Bug: 173532925
Bug: 173532925
Bug: 187820569
Test: Presubmit
Change-Id: Ia27e00250e7aa7c7a1acc974f24c63cc456739be
2021-05-17 15:13:40 -07:00
Winson Chiu
32b756cfae Revert "Temporary stop-gap for Chrome target SDK issue."
This reverts commit c6be9fe470.

Reason for revert: No longer needed, Chrome targets 30

Bug: 183905675

Change-Id: I7db4fda4f233414330c4daa38a96d088bd56ee09
2021-05-17 19:08:40 +00:00
Jeff Sharkey
804cb8801d Guard against null BluetoothDevice extras.
Bug: 188364781
Change-Id: If976318763fac7e5cb4b59300f104c9cd9392eaf
2021-05-16 20:45:20 -06:00
Jeff Sharkey
5014fbd644 Apply "attributionTags" to all component types.
Components within an application are often a good boundary for
developers to declare "attribution" information, such as an Activity
or Service used to offer a specific sub-feature.

This change expands the "android:attributionTags" manifest attribute
to apply to all component types, and it then automatically configures
the associated Context with Context.createAttributionContext() with
no additional developer action required.  Developers can still
manually use Context.createAttributionContext() to adjust the
attribution tag again if desired.

Bug: 187097694
Test: atest CtsAppOpsTestCases:AttributionTest
Test: atest CtsAppTestCases:android.app.cts.AttributionTagsTest
Change-Id: Ia16c66e7b63bcbfb8c0d7348e9b5d4adb2a1f45d
2021-05-15 12:11:03 -06:00
Jeff Sharkey
dd6dd3b1fb Apply AttributionSource during Intent delivery.
There are some Parcelables which offer to perform Binder calls, and
when these are delivered via Intent extras they fallback to
ActivityThread.currentAttributionSource(), instead of being tagged
based on the relevant app component.

This change begins using Intent.prepareToEnterProcess() as a hook to
fix-up AttributionSource when those extras finally land in the
destination process.  It uses the relevant AttributionSource based
on the Activity or Service the Intent is delivered to, which
developers have control over via AppComponentFactory.

In the case of <receiver> manifest elements, this change applies the
first android:attributionTags value to the Context used for that
BroadcastReceiver.

Bug: 187097694
Test: atest AttributionTest
Change-Id: I8f5197db7e8d7277d34f0ef2bb90bfdf1871186a
2021-05-15 09:48:14 -06:00
TreeHugger Robot
ef36e9f960 Merge "Move boot test to postsubmit" into sc-dev 2021-05-13 00:13:07 +00:00
Alex Buynytskyy
8e1f1debde Better error message for missing job services.
Bug: 141645789
Test: presubmit
Change-Id: I334639d624f08ae2ec5ee235d609c780a09a1338
2021-05-12 16:01:53 +00:00
Jackal Guo
0a55e2c85f Move boot test to postsubmit
Bug: 187383694
Test: atest
Change-Id: I1611e4bb3bfc99f2bdef14357d09f4d0cf5a3a33
2021-05-12 15:39:19 +00:00
TreeHugger Robot
5272316f8f Merge "Add CtsPackageManagerBootTestCases to TEST_MAPPING" into sc-dev 2021-05-12 15:07:34 +00:00
satayev
7e31457971 Merge "Expose SharedLibraryInfo#getAllCodePaths as @TestApi." am: 3f955dda5c am: db47bd0c94 am: c792a3d96b
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1703011

Change-Id: I3aaaeea2b75feb91af679ee56493144b037a5f2f
2021-05-12 14:43:44 +00:00
TreeHugger Robot
8eb397fb04 Merge "Make ACTION_VIEW_PERMISSION_USAGE_FOR_PERIOD public" into sc-dev 2021-05-12 10:26:12 +00:00
Jackal Guo
6f9142e0d9 Add CtsPackageManagerBootTestCases to TEST_MAPPING
Fix: 187383694
Test: atest
Change-Id: I88c3b7c5005550d1e043027637f7d0d6b90edab1
2021-05-12 08:55:49 +00:00
Erik Wolsheimer
7e93dab6ee Make ACTION_VIEW_PERMISSION_USAGE_FOR_PERIOD public
Bug: 176902658
Test: Manual
Change-Id: Ie5886864eb8938555ba94fcf72b7ca084681a9e9
2021-05-11 19:02:59 -07:00
Jackal Guo
f849b0b75e Merge "Revert the usage of sCompatibilityModeEnabled" into sc-dev 2021-05-12 01:17:31 +00:00
Pinyao Ting
ab982fa862 Merge "Remove updateShortcutVisibility" into sc-dev 2021-05-11 23:15:25 +00:00
satayev
a8e4e5dcc3 Expose SharedLibraryInfo#getAllCodePaths as @TestApi.
The method is called by CTS helper app to list all java shared libraries
present on the device. All classes present in the reported jar/apk files
are then collected by a CTS/GTS EDI collector.

Bug: 187823488
Test: m
Change-Id: I750065112d70bc3ab45c8b6c6cc8aa4d429488a8
2021-05-11 17:26:47 +01:00
Makoto Onuki
619c5a46d8 Implement requestForegroundServiceExemption, without enabling it
Bug: 187429663
Test: Checked ApplicationInfo.hasRequestForegroundServiceExemption()
  of a test app, with and without the new attribute set.

Change-Id: I98342a35a82e44327db896c9820806eb3eda5b4c
2021-05-10 11:50:32 -07:00
Jackal Guo
254edef2cf Revert the usage of sCompatibilityModeEnabled
Change the usage of global compatibility mode enabled state back to
PackageParser first until the tests are ready to ensure the behavior
is consistent.

Bug: 186592266
Test: atest CtsCompatibilityModeTestCases
Change-Id: Ib57886c095a7b2f6e797ccdaa2890f3ad60f5482
2021-05-10 10:25:12 +08:00
Stanislav Zholnin
4762e7e8db Fix bug in BaseParceledListSlice implementation.
Under specific conditions, parceled list can be written in such a
way that writing of new list starts when destination parcel is
just above MAX_IPC_SIZE. In that case "0" is written to parcel to
indicate that there will be no inline items written and writing of
the list will start with extra items.

When unparcelling such list, listElementClass is not determined and
stays equal to null, because it only can be determined if there
were some inline items read first, before switching to extra.

This leads to random unparcelling failures with the following
error message:

Can't unparcel type <typename> in list of type null.

Test: manually verified
Bug: 186193371
Fix: 151481291
Bug: 156514418
Fix: 169191099
Change-Id: I849bf46158b6d9b109139b19b93a6a1ba16ecc77
2021-05-07 08:12:30 +01:00
TreeHugger Robot
e39067a6e1 Merge "Revert "Migrate the usage of sCompatibilityModeEnabled"" into sc-dev 2021-05-06 05:14:37 +00:00
Svetoslav Ganov
720add59c7 Merge "Prepare AttributionSource to expose to native" into sc-dev 2021-05-05 23:23:54 +00:00
Todd Kennedy
a02ce471be Revert "Migrate the usage of sCompatibilityModeEnabled"
This reverts commit 0a98d27b04.

Reason for revert: b/187301322

Change-Id: Iae9acc88841f214a5e3a14f83c3d5ee8b9ffd422
Bug: 187301322
2021-05-05 20:51:46 +00:00