Update vold to only create package sandboxes and not do any bind mounts.
After zygote forks, all the necessary bind mounts will be setup for
the process.
Bug: 124009234
Test: manual
Test: atest cts/hostsidetests/appsecurity/src/android/appsecurity/cts/ExternalStorageHostTest.java
Test: atest DownloadProviderTests
Test: atest cts/tests/app/src/android/app/cts/DownloadManagerTest.java
Test: atest MediaProviderTests
Test: atest cts/tests/tests/provider/src/android/provider/cts/MediaStore*
Change-Id: Ibd4af79b385e20228a0e9ce4446f14ead87e228e
Make HiddenApiUsageLogger a singleton initialised in Zygote pre-fork and
rely on copy-on-write to prevent heap size increases
Test: atest google/perf/memory/memory-test
Bug: 123705750
Change-Id: Idc5ad13d4e158659009290f410ce721013345308
The idea is to measure new feature success and some logs to track are
missing.
Additionally, as part of the project, it became clear that phone
orientation is currently not logged. While this is something we want to
know in the context of sharesheets, this will also be a valueable
metric for other applications.
Bug: 122511750
Test: Added some tests, but wasn't able to test addition in
ResolverDrawerLayout and for the direct share target logging.
Change-Id: I0a6bc6f94a318ea3cf59bf8233ec33a2ddda80ce
These Extensible Metadata Platform (XMP) tags contain XML data which
is used to communicate rich metadata information beyond EXIF.
TIFF: Tag 700
JPEG: Application segment 1 (0xFFE1) with segment header
"http://ns.adobe.com/xap/1.0/\x00"
Bug: 120791890
Test: atest cts/tests/tests/media/src/android/media/cts/ExifInterfaceTest.java
Change-Id: Iacccbf9b516b3204d99a760eaeb19a41554c3f97
It turns out that AppRestrictionsHelper#addSystemImes() has always
queried for the owner user's system IMEs despite the fact that it's
trying to query system IMEs for a restricted profile user. This
behavior has not changed since its beginning [1].
Most likely people would not have noticed this though, because:
* Settings app does not show a menu item to create a restricted user
on phone devices.
* Even if it's available, most people do not use restricted users.
* Even if someone created a restrected user, most likely the owner
user and the restrected user share the same set of system IMEs,
which are defined as "pre-installed" IMEs.
Anyway, AppRestrictionsHelper#addSystemImes() will start using a newly
introduced @hide API IMM#getEnabledInputMethodListAsUser() so that it
can query for the right user's system IMEs, instead of querying owner
user's ones.
[1]: Ifced841ad3bfbde33d2403356216dd1749b7fa9a
a7a93784d1f9798d37cb618def1a558f8d626f0f
Bug: 122164939
Test: atest SettingsLibTests:AppRestrictionsHelperTest
Test: manually done as follows.
1. Build aosp_taimen-userdebug and flash it.
2. adb shell pm create-user --restricted test_profile
3. adb shell am start -a android.settings.USER_SETTINGS
4. Click the gear icon next to the "test_profile" user.
5. By adding a log, make sure that IMMS#getInputMethodList()
gets called with userId = 10.
Change-Id: I5b50b5fe143c74c87b331bda3e5bcc4d6248436e
The API enables developers to display icons for menu items. Before this,
the common workaround was to reflect in MenuPopupHelper (non-public
class), and call setForceShowIcon there.
Bug: 123769396
Test: atest android.widget.cts.PopupMenuTest
Change-Id: If4ef46bc7786a2e7e756a9b15c81147e0cce1090
- Only backup and restore global state for the system user.
- Ignore user id in data for restore (as user 0 on source device could
be restoring to user 10 on target device for example).
- Don't restore managed services for managed users.
Bug: 123349308
Test: 1) atest $(find \
frameworks/base/services/tests/uiservicestests/src/com/android/server/notification \
-name '*Test.java')
2) Manual: Test backup and restore of DND configurations and app
notifications in system and non-system user.
TODO: More testing
Change-Id: Iea2933f2d8709f830a65815871ce974c00f6ce83
This CL fixes a regression introduced by my previous CL [1], which
enabled InputMethodManager#getEnabledInputMethodList() to return the
result based on the caller's user ID, not based on the current IME
user, even when it gets called from background users.
Since Keyguard always runs as user 0 currently, it is now Keyguard's
responsibility for querying enabled IMEs with an explicit user ID. To
do so this CL adds a @hide API IMM#getEnabledInputMethodListAsUser()
and lets KeyguardPasswordView use it.
[1]: I192a0f5a1375170d17a4c08af94f23966dbaea8b
7f8ee4b9dd
Bug: 122164939
Fix: 123904896
Test: Manually verified as follows.
1. Build aosp_taimen-userdebug and flash it.
2. make -j SoftKeyboard
3. adb install -r $OUT/system/app/SoftKeyboard/SoftKeyboard.apk
4. adb shell ime enable com.example.android.softkeyboard/.SoftKeyboard
5. adb shell pm create-user test_user
6. adb shell am switch-user 10
7. adb shell locksettings set-password aaaa
8. adb shell wm dismiss-keyguard
9. Make sure that the IME switcher icon is not shown at the right
end of the password field.
Change-Id: I6e7d7353c2b5b1da5d460ae005fb2585f85fb1c4
Log the status of getEditChoicesBeforeSending with the
SMART_REPLY_VISIBLE and SMART_REPLY_ACTION events.
Log whether the reply was changed before sending with the
SMART_REPLY_ACTION event.
Bug: 123407240
Test: atest NotificationManagerServiceTest SmartReplyControllerTest SmartReplyViewTest NotificationContentViewTest RemoteInputViewTest SmartReplyViewTest
Change-Id: I92bf9b9486f023e7a1ab553c24a9d021dc2f3133
The overall workflow of Content Capture is:
- send initial structure
- send deltas afterwards
Initially, the initial structure was being reported one view at time, which was causing janking.
This CL changes it so while that while the initial structure is being laid out, the content captures
are held. Then after it's finished, it traverses the structure and sends the initial events.
This change also allowed use to optimize the performance by caching the following state:
- View.isImportantForContentCapture()
- View.getContentCaptureSession()
- Context.getContentCaptureManager()
Besides the performance improvements, this approach also has the following advantanges:
- It sends the VIEW_APPEARED events for the parent views before the events for the children.
- It send events to notify when the view structure layout is ready.
Bug: 123307965
Test: atest CtsContentCaptureServiceTestCases
Test: m update-api
Change-Id: I6db7cc11c6edf65cbffe42187fda82c84c3665ff
Passed down to the zygote if the corresponding system property is set:
runtime_native / use_app_image_startup_cache.
Bug: 123524494
Bug: 116059983
Test: adb shell device_config put runtime_native use_app_image_startup_cache true
Change-Id: I27c0b9ea9533b2b6ad1ccd45f0fb9292c4cfca02
With this change, InsetsController.show/hide now links to IME. This also
takes care of animating IME along with other types.
Insets API are reactive i.e. they remain in sync with state of IME.
Test: atest InsetsControllerTest
Test: atest ImeInsetsConsumerTest
Bug: 118118435
Change-Id: Ib3997487bd19351d1d23bc70173fc9bdfd23a704
This way PackageManager does not depend on RoleManager any more. Also
did some refactoring on RoleManagerService.
Bug: 123775970
Test: manual
Change-Id: I56c50d410ef212c960ffaa6212655b2f42870878
It is properly added to the parcel when Binder.setCallingWorkSource is
called manually, however it does not work when we call
Binder.setCallingWorkSource in Binder#ProxyTransactListener. The problem
is that we are adding the worksource to the parcel too early. It is
called before we add the work source to the thread local
(ThreadLocalWorkSource.setUid)...
What currently happens
- Client code calls an AIDL method
- AIDL generated code calls writeInterfaceToken which add the headers to the parcel (including the worksource)
- AIDL generated code calls Binder#transact
- Binder#transact calls ProxyTransactListener#onTransactStarted --> this code is calling Binder.setCallingWorkSource too late. After writeInterfaceToken is called which is where the code calls Binder.getCallingWorkSource and add it to the parcel.
To fix it, we udpate the parcel request headers if the work source has
been fixed when the listener is called.
Test: atest binderLibTest BinderWorkSourceTest BinderCallsStatsServiceTest android.os.ParcelTest BinderProxyTest
Bug: 123744028
Change-Id: Id1a4565c1f096d38bf1e423bea897da77ff84005
- Extract current code for checking caller into a private method
- Replace occurrences of that code with a call to the private method
- Add method call to setTranscription/clearTranscription/setVoiceState
Test: Verified Milford can't call setTranscription/clearTranscription
when it is no longer the active service.
Bug: b/123412646
Change-Id: I2c428c6c65b62f6a83264286df4f44fb5d1c249e
It is needed to enable linux perf events based profiling
on the profileable apps.
Bug: 118835348
Test: build and boot blueline.
Test: test profiling profileable apps manually using simpleperf.
Change-Id: Iba11fef81151f0c9e30b0478f1dd9e4ab1c5ac8d