Commit Graph

21106 Commits

Author SHA1 Message Date
Treehugger Robot
3aaf984908 Merge "Avoid full unparcelling where possible in Bundle" am: 3ad4ecc296
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1842226

Change-Id: I0aef93d99d83f20b22753e8e1d41cfb5c4b5cdce
2021-10-06 12:25:47 +00:00
Treehugger Robot
3ad4ecc296 Merge "Avoid full unparcelling where possible in Bundle" 2021-10-06 12:06:59 +00:00
Alex Johnston
c8c3e89dce Merge "Revert "Revert "Cherrypicking flags and override methods for all..."" am: 5c35d3bce6
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1845059

Change-Id: I90e8a4d567fe2de9ab765806fc7bd3aba4fe0845
2021-10-05 15:11:32 +00:00
Alex Johnston
4e8851d0d8 Revert "Revert "Cherrypicking flags and override methods for all..."
Revert "Revert "Required change for adding overload method for r..."

Revert submission 1842720-revert-1836473-receiverChangesinAOSP-FWJQDTADTI

Reason for revert: DroidMonitor-triggered revert due to breakage, bug b/202144225
Reverted Changes:
I03409ea39:Revert "Required change for adding overload method...
I583a11d2a:Revert "Cherrypicking flags and override methods f...

Change-Id: I5cdf9c74d51a259fdaa43dfdc9423d22145eac60
2021-10-05 14:57:10 +00:00
Bernardo Rufino
9e26212dac Avoid full unparcelling where possible in Bundle
and put a warning where it's not possible. This is to make sure we know
when to touch bundles provided by apps.

In this CL:
* deepCopy() now doesn't deserialize lazy objects before copying. It
  doesn't copy them either, it merely passes them into the new map as
  the same reference. This works because we implemented fine-grained
  locking into each lazy value, so concurrent access won't be a problem.
  Furthermore, LazyValue caches the deserialized object, so we'd still
  honor the contract of deepCopy() that "Other types of objects (such
  as Parcelable or Serializable) are referenced as-is and not copied in
  any way". I had to perform one extra check in the synchronized block
  in LazyValue to guarantee this (double-checked locking), I explain
  that in the comments.
* Removed filterValues() and codepaths that used it. This was created
  with the purpose of removing items whose classes weren't available to
  the system to prevent crashes coming from full deserialization. This
  is not a concern anymore with lazy bundle, hence we can remove the
  codepaths altogether (see email for more details).
* Put warnings in javadoc of getMap() and PeristableBundle().

Test: Boots
Test: atest -d android.os.cts.ParcelTest android.os.cts.BundleTest android.os.BundleTest android.os.ParcelTest
Bug: 195622897
Change-Id: I14bb6a7874814f42cbcc6b5fd372c42752aa74c8
2021-10-05 13:39:36 +01:00
Jacky Kao
1a894180c9 Merge "Revert "Cherrypicking flags and override methods for allowing dy..."" am: 98ff8ecdaa
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1842721

Change-Id: Ieaed4fcc2fa97db551a70f4a3076b4237acfb8ab
2021-10-05 02:08:29 +00:00
Jacky Kao
0827cf0cca Revert "Cherrypicking flags and override methods for allowing dy..."
Revert "Required change for adding overload method for registerR..."

Revert submission 1836473-receiverChangesinAOSP

Reason for revert: <INSERT REASONING HERE>
Reverted Changes:Making build break
I906ce9eb0:Required change for adding overload method for reg...
I9a16f566c:Cherrypicking flags and override methods for allow...

Change-Id: I583a11d2a23651db24acde303d522a5faae15c6b
2021-10-05 01:48:25 +00:00
Jacob Hobbie
7e5da1ee2e Merge "Cherrypicking flags and override methods for allowing dynamically registered receivers to mark themselves explicitly as exported or not exported." am: 316e0e8336
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1836473

Change-Id: I39049e42feb66c3fa3f0ebdef8e175ae86d5d410
2021-10-05 01:24:33 +00:00
Etienne Ruffieux
4c70432d82 API renaming asked by API Council
Renamed all "cancelled" to "canceled" for PendingIntent.

Tag: #feature
Bug: 201405682
Test: atest android.app.cts.PendingIntentTest#testCancelListener
Change-Id: I0f5457f58836c6e80845dcd4d874a810008a320e
2021-09-29 13:08:09 +00:00
Makoto Onuki
41b8d147fd Reduce PendingIntent memory allocation
Fix: 195146423
Test: atest android.app.cts.PendingIntentTest

Change-Id: I246d272c77337f77623f0c11d5f445895cdbf5e8
2021-09-27 09:35:58 +00:00
Makoto Onuki
30bd1bb72d Expose PendingIntent.addCancelListener
Bug: 195146423
Test: atest android.app.cts.PendingIntentTest#testCancelListener
Change-Id: I74e6ae49bfb2b31f0bc693d75e1f1433206011ce
2021-09-27 09:35:48 +00:00
Jacob Hobbie
f76e50ba48 Cherrypicking flags and override methods for allowing dynamically
registered receivers to mark themselves explicitly as exported or not
exported.

Test: will add tests with enforcement
Change-Id: I9a16f566c54e389743dcf460734ecdc0b1081768
2021-09-23 08:20:04 -07:00
Elliott Hughes
76aa934468 Merge "Set $TMPDIR as well as java.io.tmpdir." am: 1353c41379
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1821337

Change-Id: Ib98b38571754781102093c67d15ac3364c5dc029
2021-09-14 17:08:20 +00:00
Elliott Hughes
d5ccb038f6 Set $TMPDIR as well as java.io.tmpdir.
This helps functions like tmpnam() and tmpfile() to "just work", like
their Java equivalents.

Bug: https://issuetracker.google.com/36991167
Bug: http://b/174682340
Test: atest FrameworksCoreTests:android.app.activity.ActivityThreadTest
Change-Id: Ife785f0ca69a34ba2c6b5d1e8e23f8b883d8fc8f
2021-09-08 12:31:25 -07:00
Treehugger Robot
b8c969cb48 Merge "Fix guide link to bg execution limits" am: 42d6f9b7b2
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1820532

Change-Id: I3aacda36b23caef5858de25b97355a1603e112d3
2021-09-08 06:37:32 +00:00
Christopher Tate
7ad31eb3f4 Fix guide link to bg execution limits
Bug: 157788333
Test: m offline-sdk-docs
Change-Id: I9258aeaa549b63960669d4bed9ea8fb03392146b
2021-09-07 11:36:20 -07:00
Jooyung Han
16c2faf6e1 Merge "Revert "AIDL: use typed Map"" am: 01da4566ee
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1806796

Change-Id: Idc267d0189a2efcae7d4e5437e31106aa3a4b3ea
2021-09-01 00:37:33 +00:00
Jooyung Han
01da4566ee Merge "Revert "AIDL: use typed Map"" 2021-09-01 00:20:02 +00:00
Jooyung Han
f306e46365 Revert "AIDL: use typed Map"
This reverts commit 553c027bbf.

Reason for revert: b/197550396

Change-Id: I3c59d132985a3d21a11b55ba1546ed9f46f6e474
2021-08-31 00:49:37 +00:00
Jooyung Han
07db6330cb devicepolicy: use typed List<String> in AIDL
Bug: 192615532
Test: m
Merged-In: I0ea1c35f7ce4dd6f6bde02874e02ed190fa2e904
Change-Id: I0ea1c35f7ce4dd6f6bde02874e02ed190fa2e904
(cherry picked from commit 57fe5105df)
2021-08-24 03:16:54 +00:00
Jooyung Han
4d9fc0aea9 devicepolicy: use typed List<String> in AIDL
Bug: 192615532
Test: m
Merged-In: I0ea1c35f7ce4dd6f6bde02874e02ed190fa2e904
Change-Id: I0ea1c35f7ce4dd6f6bde02874e02ed190fa2e904
2021-08-24 09:11:54 +09:00
Makoto Onuki
be46bb90ac Merge "Change Shallow Copy to Deep Copy in UsageStats" am: f4d7116b49
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1796513

Change-Id: If0a979f9b0b39387bdd854859187b8b14ae9e4bd
2021-08-23 19:47:58 +00:00
Makoto Onuki
f4d7116b49 Merge "Change Shallow Copy to Deep Copy in UsageStats" 2021-08-23 19:17:38 +00:00
zhuyunyi
afcd22acaa Change Shallow Copy to Deep Copy in UsageStats
There are three reference type members in UsageStats's constructor, when using "new UsageStats(stats)" to copy, it will be a Shallow Copy, which may cause concurrent modify problem.

For example, in UserUsageStatsService.java, the sUsageStatsCombiner is using "new UsageStats(stats.packageStats.valueAt(i)" to copy, and the value is passing to the computeCacheQuotaHints in
CacheQuotaStrategy.java. If we change the UsageStats.mForegroundServices at the same time, IndexOutOfBounds Exception will happen.

Therefore, it is necessary to modify the way of copying of the UsageStats.

Signed-off-by: zhuyunyi <zhuyunyi@xiaomi.com>
Change-Id: I58a54d17aad6ef5213e52658ee3387f3069339af
2021-08-17 14:10:39 +08:00
Xin Li
773a9dfba7 Merge sc-dev-plus-aosp-without-vendor@7634622
Merged-In: I661f5fb6b1f3f6ce4322fab8fa84a7ab364c65b1
Change-Id: I16482b494ff4821016aabbb646e495d616c630ac
2021-08-14 07:23:27 +00:00
Jooyung Han
553c027bbf AIDL: use typed Map
AIDL supports typed maps, so use it instead of untyped one.

Bug: 192615532
Test: m, TH presubmit
Change-Id: I0fedf05872cbe2025e04ca07ce6c90bc9067b331
2021-08-12 08:38:10 +00:00
Makoto Onuki
a33d48c48e Merge "Clarify how FGS restriction won't apply STICKY FGS restarts" into sc-dev am: 0c1dc2fc76
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15484572

Change-Id: Ic11bfc07ac3ad19222bcc48dc7e54f46a1af6fe6
2021-08-11 21:35:25 +00:00
Makoto Onuki
0c1dc2fc76 Merge "Clarify how FGS restriction won't apply STICKY FGS restarts" into sc-dev 2021-08-11 21:17:20 +00:00
Ruslan Tkhakokhov
7d77e932b6 Merge "Handle empty <cloud-backup> section in android:dataExtractionRules" into sc-dev am: b72bf2927e
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15462078

Change-Id: I2c136b39d1368dc2add5aee0e6d0c42360915fa7
2021-08-06 22:03:27 +00:00
Makoto Onuki
5031c3a4f6 Clarify how FGS restriction won't apply STICKY FGS restarts
Fix: 195780554
Test: build
Change-Id: Ic627a89ac863729d36554070d04c22254747f014
2021-08-06 21:43:31 +00:00
Ruslan Tkhakokhov
21f45cd998 Handle empty <cloud-backup> section in android:dataExtractionRules
Currently the <cloud-backup> section in android:dataExtractionRules is
ignored unless it contains rules. Instead, we should interpret it as
'everything other than cache and no-backup dirs is eligible for cloud
backup'.

Bug: 195095045
Test: 1. atest BackupEligibilityHostSideTest
      2. Use a test app with empty <cloud-backup> section to manually
      test:
          2.1. Empty section - everything is backed up
	  2.2. Empty section but "disableIfNoEncryptionCapabilitites"
	  set to "true" - data only backed up if the transport supports
	  encryption.
Change-Id: Ic8066721a46bda688f9211c51a0f2497e9caf93b
2021-08-06 12:16:05 +00:00
Riddle Hsu
c3b9b6ba95 Fix NPE when calling recreate in onCreate am: 6c675a3a48
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15435289

Change-Id: I22adc2f4d43f4cf9331c677667c414b8f6a127eb
2021-08-04 05:37:56 +00:00
Riddle Hsu
6c675a3a48 Fix NPE when calling recreate in onCreate
ActivityClientRecord#activity is assigned after calling
Activity#onCreate. A use case is that the app uses
support library to set night mode in onCreate.

Bug: 195418295
Test: Invoke Activity#recreate() in Activity#onCreate.
Change-Id: I6319cd6ee94fc2603979da47303963d04168db04
2021-08-04 10:16:41 +08:00
Nate Myren
9d1a9399b8 Merge "Add attribution info to start callbacks" into sc-dev am: 5d97f29218
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15446590

Change-Id: I42bdf188ec74c9d3a7179f717a08c7fec7f33833
2021-08-03 20:06:34 +00:00
Nate Myren
5d97f29218 Merge "Add attribution info to start callbacks" into sc-dev 2021-08-03 19:56:02 +00:00
Nate Myren
f685a342c8 Merge "Revert sync app op chain changes" into sc-dev am: 50ff5ac8b8
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15424412

Change-Id: I362a049cc0e3a255796dc3481cbb153c734da76d
2021-08-03 15:33:04 +00:00
Nate Myren
06d07d54db Add attribution info to start callbacks
Add attribution flags and chain IDs to start callbacks, and have the
PermissionUsageHelper listen for starts. This ensures that, if another
start happens while an op is already running, and has chain information,
then this chain information will be recorded.

Test: manual
Bug: 194198234
Change-Id: I0ab1aa0969b70e18001f4a814ea5689f9329a019
2021-08-03 08:25:31 -07:00
Nate Myren
50ff5ac8b8 Merge "Revert sync app op chain changes" into sc-dev 2021-08-03 15:16:35 +00:00
Nate Myren
86c337659a Revert sync app op chain changes
These changes cause some noted app ops to be swallowed due to one-way
app ops.

Fixes: 187721493
Test: atest AppOpsLoggingTest
Change-Id: I3b761b65b2e06138fc1d130bf80587f8885bb1d5
2021-08-02 12:50:44 -07:00
Jeff DeCew
9da83c7285 Merge "Fix bug removing semantic colors of CallStyle notification actions." into sc-dev am: 4203db854f
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15405173

Change-Id: I0aab8ac3c1a29c22751f33e7f699db73ff8389e6
2021-07-29 20:37:09 +00:00
Jeff DeCew
4203db854f Merge "Fix bug removing semantic colors of CallStyle notification actions." into sc-dev 2021-07-29 20:24:37 +00:00
Jeff DeCew
5dae211842 Fix bug removing semantic colors of CallStyle notification actions.
* When we changed the default color of emphasized actions to an accent color instead of the notification background color, I didn't split the two into different locals, and this meant the accent color was used to enforce the color contrast of the custom color.  This led to color desaturation in an attempt to meet contrast (when in dark mode) and a failure to ensure sufficient contrast (in light mode).
* A piece of this that applies specifically to colorized notifications is that we used the 'night mode' state as a shortcut for whether the background was light or dark.  This led to 1) different foreground colors for the same background color, depending on dark mode state, and 2) frequently a failure to meet contrast (and/or extreme desaturation) in one of those modes.
* Also adding different night-mode colors for CallStyle actions, to meet spec.

Test: validated sufficient contrast of default and various colorized background/button combos using the accessibility scanner.
Bug: 194935539
Change-Id: I3a69eadc89f1d9d98a816c44a36873c7615a177e
2021-07-29 11:16:52 -04:00
Chalard Jean
c962260ff6 Merge "Fix: ConnectivityManager methods crashing with SecurityException" into sc-dev am: 4e7b1128a4
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15401698

Change-Id: I06737e036ff0a320b157929329d031ff036734fc
2021-07-29 06:06:00 +00:00
Chalard Jean
249be21013 Fix: ConnectivityManager methods crashing with SecurityException
Starting in R, some methods in ConnectivityManager like
getNetworkCapabilities started passing the package name from
the context stored in CM to check that the package is really
whom it pretends to be. Unfortunately, in some cases, the
context contains package "android" for an app, and since the
app is not the system, the check fails and crashes the app.

It seems the culprit is updateHttpProxy, which is called by
ProcessList when the PROXY_CHANGE_ACTION broadcast is sent.
If this happens to run between the time the process is created
and the activity thread is "bound", then the mInitialApplication
member is not set, and updateHttpProxy uses a system context.
Since ConnectivityManager caches the context forever in a
static, this leads to subsequent legitimate calls crashing.

Setting the proxy can be deffered until such a time that the
app is bound, as it can't run any code before then. The member
is never reset to null, so it's guaranteed to be non-null at
bind time.

An alternative would be to post a runnable on the handler
thread if the member is null to try again later. This
could however run the lambda a considerable number of times
as binding can be delayed, and risks causing an infinite loop
if some invariants are changed in the future.

See also b/73572062 and ag/4056059

Bug: 155549446
Bug: 189360509
Test: ActivityThreadTest FrameworksNetTests NetworkStackTests
Test: Manually set a proxy, observe the broadcast being sent and
      apps not crashing
Change-Id: I956f76be2e0a1a675576511fb394d7ed4354b28a
Merged-In: I956f76be2e0a1a675576511fb394d7ed4354b28a
2021-07-29 13:18:54 +09:00
Chalard Jean
d90d6457fb Fix: ConnectivityManager methods crashing with SecurityException
Starting in R, some methods in ConnectivityManager like
getNetworkCapabilities started passing the package name from
the context stored in CM to check that the package is really
whom it pretends to be. Unfortunately, in some cases, the
context contains package "android" for an app, and since the
app is not the system, the check fails and crashes the app.

It seems the culprit is updateHttpProxy, which is called by
ProcessList when the PROXY_CHANGE_ACTION broadcast is sent.
If this happens to run between the time the process is created
and the activity thread is "bound", then the mInitialApplication
member is not set, and updateHttpProxy uses a system context.
Since ConnectivityManager caches the context forever in a
static, this leads to subsequent legitimate calls crashing.

Setting the proxy can be deffered until such a time that the
app is bound, as it can't run any code before then. The member
is never reset to null, so it's guaranteed to be non-null at
bind time.

An alternative would be to post a runnable on the handler
thread if the member is null to try again later. This
could however run the lambda a considerable number of times
as binding can be delayed, and risks causing an infinite loop
if some invariants are changed in the future.

See also b/73572062 and ag/4056059

Bug: 155549446
Bug: 189360509
Test: ActivityThreadTest FrameworksNetTests NetworkStackTests
Test: Manually set a proxy, observe the broadcast being sent and
      apps not crashing
Change-Id: I956f76be2e0a1a675576511fb394d7ed4354b28a
(cherry picked from commit b0d13e29515d5b7c82daed7533b78ac57e46bd93)
2021-07-29 11:55:37 +09:00
Rubin Xu
d8c6203bec Merge "Stop managed profile owner granting READ_SMS" into sc-dev am: 28e4c5d57a
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15371691

Change-Id: I352548279c31d182ff5bfb8c3fb4da41ddf53fb0
2021-07-27 09:05:46 +00:00
Rubin Xu
28e4c5d57a Merge "Stop managed profile owner granting READ_SMS" into sc-dev 2021-07-27 08:51:15 +00:00
Ahaan Ugale
4f6a71d59f Merge "Copy ContentCaptureOptions into derived Contexts" into sc-dev am: 2db19f5679
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15352571

Change-Id: If8d3b4b95a9cdb345dc3322257e06e7b8bf522ce
2021-07-24 01:24:05 +00:00
Ahaan Ugale
2db19f5679 Merge "Copy ContentCaptureOptions into derived Contexts" into sc-dev 2021-07-24 01:18:17 +00:00
Alex Johnston
7f632dca95 Stop managed profile owner granting READ_SMS
Reason: There is only one telephony stack shared
between the personal and work profile.

Bug: 194382185
Bug: 189942529
Test: atest com.android.cts.devicepolicy.MixedManagedProfileOwnerTest#testGrantOfSensorsRelatedPermissions
      atest com.android.cts.devicepolicy.MixedManagedProfileOwnerTest#testDenyOfSensorsRelatedPermissions
      atest com.android.cts.devicepolicy.MixedManagedProfileOwnerTest#testSensorsRelatedPermissionsNotGrantedViaPolicy
      atest com.android.cts.devicepolicy.MixedDeviceOwnerTest#testGrantOfSensorsRelatedPermissions
      atest com.android.cts.devicepolicy.MixedDeviceOwnerTest#testDenyOfSensorsRelatedPermissions
      atest com.android.cts.devicepolicy.MixedDeviceOwnerTest#testSensorsRelatedPermissionsNotGrantedViaPolicy
Change-Id: I99384d5713bb2d04f5b6fbe20c17bd72a39b57d7
2021-07-23 17:05:21 +01:00