summaryrefslogtreecommitdiff
path: root/apex
AgeCommit message (Collapse)Author
2021-06-29Merge "Enable appsearch to perform its own hidden API processing" into sc-devPaul Duffin
2021-06-29Allow power-allowlisted apps to schedule alarm-clocksSuprabh Shukla
They can already use a lot of APIs to perform work in the background and it simplifies the logic handling permission state changes and the return value of canScheduleExactAlarms. The major changes in behavior are: 1. Allowlisted apps can schedule unlimited alarm-clock alarms. This should be the same as pre-S behavior. 2. If they happen to get the permission revoked, due to whatever reason: user revocation, deny list, or app update, their alarm-clock alarms will stay safe like their other exact alarms. 3. The API canScheduleExactAlarms is now true to its name: It returns true even if the app is allowlisted. Test: atest CtsAlarmManagerTestCases:ExactAlarmsTest atest FrameworksMockingServicesTests:AlarmManagerServiceTest BYPASS_INCLUSIVE_LANGUAGE_REASON=Existing APIs Bug: 191716678 Bug: 190625528 Change-Id: I420694455f50aac10cf49cd43ff3b98575d86e9f
2021-06-29Exempt default_input_method from BG-FGS-start restriction.Hui Yu
Bug: 191702190 Test: atest android.app.cts.ActivityManagerFgsBgStartTest#testFgsStartInputMethod Change-Id: I3bbe6da7afa8e3f2fce3a7c7d5bc40c3c7fd7758
2021-06-29Merge "Revert "Kill process if it's cached & idle and in forced-app-standby ↵Jing Ji
mode"" into sc-dev
2021-06-28Move libicing.so out of /usr/lib, into the appsearch apex.Alexander Dorokhine
Bug: 169826971 Test: Presubmit Change-Id: Ibe5dd5014c5a70cb5b0fcf3eb33db9911047bdc8
2021-06-29Enable appsearch to perform its own hidden API processingPaul Duffin
Previously, the hidden API encoding of the appsearch boot dex jars, i.e. those dex jars that appsearch contributes to the bootclasspath were done as part of the monolithic hidden API processing. This change causes the encoding to be done by the appsearch's bootclasspath_fragment. This change involves the following: * Addition of the fragments property to the appsearch's bootclasspath_fragment module to list all the other bootclasspath_fragment modules on which this depends. * Addition of the additional_stubs property to add stubs for APIs that are not provided by another bootclasspath_fragment. The build automatically checks that the hidden API flags which are computed by appsearch and encoded into its boot dex jars match those that are generated by the monolithic processing so this is guaranteed to be safe. Bug: 179354495 Test: m com.android.appsearch - ensure that the generated APEX is byte-for-byte identical before and after these changes. m out/soong/hiddenapi/hiddenapi-flags.csv - make sure that they are not changed by this. Change-Id: I8e5a60d64d3e147535e11a4ad30404f9888f53d2
2021-06-28Revert "Kill process if it's cached & idle and in forced-app-standby mode"Jing Ji
This reverts commit 6cf25139a0c4625a753f84183c641e83e89ec8fb. Reason for revert: It results in thrashing the system in some cases Bug: 192082833 Bug: 152573287 Test: atest FrameworksMockingServicesTests Test: atest FrameworksServicesTests Change-Id: I0ca09655b7911857cded5da74169b0c3bd332bda
2021-06-28Merge "Fix pending job sorting." into sc-devKweku Adams
2021-06-28Merge "Port appsearch-service to the system_server_current sdk." into sc-devAlexander Dorokhine
2021-06-25Avoid unnecessary work.Kweku Adams
Only requested-expedited-jobs could have their run-in-bg constraint change (because of EJ quota) without a corresponding call coming through the ForceAppStandbyListener. Restrict job evaluation to requested-EJ jobs to avoid making unnecessary/redundant calls for regular jobs. Bug: 192105110 Test: atest frameworks/base/services/tests/mockingservicestests/src/com/android/server/job Test: atest frameworks/base/services/tests/servicestests/src/com/android/server/job Test: atest CtsJobSchedulerTestCases Change-Id: I9acc45e109c32fb77c79df4fe126a9b1845163ff
2021-06-24Port appsearch-service to the system_server_current sdk.Alexander Dorokhine
The hidden APIs have already been fixed, so this CL mostly changes build rules. Bug: 181787682 Bug: 146218515 Test: Presubmit Change-Id: I5d68d68ce8f39753f62c5e3680216877b7d7f819
2021-06-24Fix pending job sorting.Kweku Adams
We want to always run an app's expedited jobs before its own regular jobs. This means that we order an app's EJs before its regular jobs. In order to satisfy the transitivity constraint, we must also order one app's EJs ahead of a differing app's jobs iff we had to order the first app's EJ ahead of a job that was earlier than the second app's jobs. The current sorting system fails the transitivity requirement. Test case: regJob1 enqueued at t1 for UID A, regJob2 enqueued at t2 for UID B, EJ3 enqueued at t3 for UID A. Because we expedite EJs, EJ3 is ordered before regJob1. Because we sort jobs of differing apps by enqueue time, regJob1 comes before regJob2 and regJob2 comes before EJ3. This violates transitivity. The new sorting system will order a later EJ ahead of a differing app's jobs iff the first app has a regular job that is earlier than the differing app's first regular job. Bug: 191592712 Test: atest FrameworksMockingServicesTests:JobSchedulerServiceTest Test: atest CtsJobSchedulerTestCases Change-Id: I5391a4f35269d7d43eefc1954788f9df160b1d22
2021-06-24Merge "Prevent instant apps from using AppSearch." into sc-devCassie Wang
2021-06-23Prevent instant apps from using AppSearch.Cassie Wang
Bug: 181875256 Test: atest -m -c --rebuild-module-info CtsAppSearchHostTestCases CtsAppSearchTestCases FrameworksCoreTests:android.app.appsearch FrameworksServicesTests:com.android.server.appsearch Change-Id: I50fa222f51a9d10395bd6b5815580170561d96d0
2021-06-23Sync framework from jetpack.Alexander Dorokhine
Changes included: * 131d852: Remove usages of hidden APIs in the CTS tests. * c984c24: Change AppSearchSchema and PropertyConfig #toString() Bug: 146218515 Bug: 179680545 Test: Presubmit Change-Id: Ibcef982cfea95ede2ae8e6075a052a83b44298c4
2021-06-23Merge "Update framework from jetpack." into sc-devAlexander Dorokhine
2021-06-22Merge "Tighten up Doze alarm timing." into sc-devTreeHugger Robot
2021-06-22Update framework from jetpack.Alexander Dorokhine
Changes included: * 79f2ffe: Fixes required for export. * e1ca63a: Implement empty schema shouldn't have a version number. * 8b76be4: Refactor VisibilityStore from a no-op implementation into an interface. * 47ba533: Remove the max repeatable length limit for GenericDocument * 52ca287: Add GetSchemaResponse cts test. * 56585f5: Change PutDocumentsRequestTest to be a cts test. Bug: 183050495 Bug: 180058203 Bug: 191592792 Bug: 189161227 Bug: 183239766 Test: Presubmit Change-Id: I30f51a18d697d3a5e43d2c63549ab19a36bbe99e
2021-06-22Merge "Update framework from jetpack." into sc-devAlexander Dorokhine
2021-06-21canScheduleExactAlarms returns true for older appsSuprabh Shukla
Callers that don't target S can schedule exact alarms so should get a return value of true when they call canScheduleExactAlarm. Test: atest FrameworksMockingServicesTests:AlarmManagerServiceTest Bug: 191328951 Change-Id: I1cd1d0fb3d3d922360494552e653ed540bfe5227
2021-06-21Merge "Allow bucket elevation for timed-out restricted apps." into sc-devKweku Adams
2021-06-18Update framework from jetpack.Alexander Dorokhine
Included changes: * a8c984: Add more tests for logging * 501a51: Remove some deprecated TODOs. * 639f25: Add SchemaMigrationStats. * 0b8885: Use consistent terminology for 3p and system access. * 064c36: Add a CTS test for snippeting window sizes and max match counts. Bug: 173532925 Bug: 187879464 Bug: 180058203 Test: Presubmit Change-Id: I878fd6c7a42cccb237898392aac8c615830eb564
2021-06-18Guard system usage reporting by checking the caller has system access.Alexander Dorokhine
Adding this check in a testable way requires refactoring VisibilityStore to pull it out of management by the AppSearchImpl object. It is now initialized as a sibling of AppSearchImpl, managed by AppSearchUserInstanceManager. This has several benefits: * Breaks the complicated initialization inter-dependency between AppSearchImpl and VisibilityStore * Reduces duplicative singleton managers * Allows AppSearchImpl to be tested more easily by accepting a "hasSystemSurfaceable" boolean that can be set in tests * Reduces the number of times we have to call into VisStore; we can determine whether the caller has system access in advance instead of repeating the check for every schema type Bug: 180058203 Bug: 183031844 Test: GlobalSearchSessionCtsTest#testReportSystemUsage_ForbiddenFromNonSystem Test: GlobalSearchSessionPlatformCtsTest#testReportSystemUsage Test: VisibilityStoreTest Change-Id: I84c84819f287628ccf8af369f5481a8e90255f62
2021-06-18Merge "Clear the uninstalled package data in AppSearch." into sc-devTerry Wang
2021-06-17Improve the net-capabilities scheme for backward compatibilityFrank Li
- Create a new XML tag for the new format. The new format should persist the arrays of values without assuming they necessarily have different bits. - Upon reading, if the new tag is present, use that. If the new tag is not present but the old tag is present, then limit the contents to the capabilities/transports that existed in R. - Catch all exceptions and ignore the requests if they can't be re-read from disk. This is a measure to avoid any mistake where the device couldn't boot when JS tries to restore state. Bug: 183071974 Test: atest JobStoreTest Original-Change: https://android-review.googlesource.com/1679762 Merged-In: I56cde50d2adab81134c8be4f6996d68018f4212a Change-Id: I56cde50d2adab81134c8be4f6996d68018f4212a
2021-06-16Tighten up Doze alarm timing.Kweku Adams
Set explicit alarm window sizes so we can control the maximum alarm delay for Doze alarms. Bug: 187947479 Bug: 188468510 Test: atest DeviceIdleTest Test: atest FrameworksMockingServicesTests:DeviceIdleControllerTest Change-Id: I40c0e1a0fce18886ea817245d9a064a509eb6e08
2021-06-16Allow bucket elevation for timed-out restricted apps.Kweku Adams
Ensure SYSTEM_INTERACTION can bring an app out of the RESTRICTED bucket (temporarily) if the app is only in the bucket due to timeout. Bug: 191297958 Test: atest AppStandbyControllerTests Change-Id: Ie76d224710228a8654d4d57ee0c73bb9441ef28f
2021-06-16Merge "Exempt some callers from min-window restrictions" into sc-devTreeHugger Robot
2021-06-16Merge "Explicitly set generate_hashtree: false" into sc-devNikita Ioffe
2021-06-16Clear the uninstalled package data in AppSearch.Terry Wang
Since we cannot access locked user's data and clear it when a package got removed. When a user is unlocking, we should prune their data and remove all data that doesn't belong to any of installed packages. This will also help in handling the case where device gets rebooted before the data is cleared for an uninstalled package. Bug: 186151459 Test: atest --rebuild-module-info CtsAppSearchHostTestCases Change-Id: Ic6d151621a88df7806901781d3edfec65700c35d
2021-06-15Exempt some callers from min-window restrictionsSuprabh Shukla
Callers that have power exemption should be allowed to set smaller windows for their alarms. Test: atest FrameworksMockingServicesTests:AlarmManagerServiceTest Bug: 185199076 Change-Id: I5f6515a917da7f87891f79fb637d48a3d7862a1b
2021-06-15Switch to a non-hidden way to compute data path and switch to subdir.Alexander Dorokhine
We need to store other things in the appsearch data dir other than what Icing stores, such as the storage info cache. Bug: 177685938 Bug: 181787682 Test: Presubmit Change-Id: I903c34a2c891d617217d44f5126d0d31c8c6bf39
2021-06-15Merge "Update framework from jetpack." into sc-devAlexander Dorokhine
2021-06-15Check nullity of ResultReceiverJin Seok Park
Bug: 182164496 Test: N/A Change-Id: I96bdef1c79f8f91d33d6a6a734bc94e162a5ea33 (cherry picked from commit 2d12628ecc78fdbd5c04bf40d2110c5cc91a9e58)
2021-06-15Merge "Close AppSearchImpl in handling user removed broadcast." into sc-devTerry Wang
2021-06-15Merge "Update AlarmManager javadoc for S Beta 3" into sc-devTreeHugger Robot
2021-06-14Update AlarmManager javadoc for S Beta 3Makoto Onuki
Sample partial output: https://screenshot.googleplex.com/4wey3a3y3jsoGcP Bug: 190625528 Test: build Test: m offline-sdk-docs && \ cd /android/sc-dev/out/target/common/docs/offline-sdk/ && \ python3 -m http.server 8000 && \ google-chrome http://localhost:8000/reference/android/app/AlarmManager.html#setExactAndAllowWhileIdle(int,%20long,%20android.app.PendingIntent) Change-Id: Ie106b03a1c20fa62b0023f82d2c3997b4e425d95
2021-06-14Merge "Handle exact alarm permission state changes" into sc-devTreeHugger Robot
2021-06-14Explicitly set generate_hashtree: falseNikita Ioffe
Non-updatable APEXes are going to be only present on a dm-verity protected read-only partition. For such APEXes there is no need in embedding a hashtree. This is a no-op change in preparation of switching default value of generate_hashtree to true. Bug: 190621617 Test: m Change-Id: I0283fb03908a87490e5e29b803553977b8b6729f
2021-06-14Merge "Propagate the temp allowlist reason to NPMS." into sc-devSudheer Shanka
2021-06-13Handle exact alarm permission state changesSuprabh Shukla
The permission SCHEDULE_EXACT_ALARM state changes at the following boundaries: 1. App-op: This gets toggled by the user via Settings. 2. Deny-list: Packages can be added to the deny list via DeviceConfig APIs. 3. Package changes: A package's manifest may changes when it gets updated. In both cases 1 and 2, if alarm manager detects a permission change from revoked to granted, it sends the ACTION_SCHEDULE_EXACT_ALARM_PERMISSION_STATE_CHANGED broadcast to the app. If it detects a permission change from granted to revoked, it kills all the processes within the hosting uid. In all three cases, when the permssion changes from granted to revoked, all the exact alarms scheduled by the relevant package are removed. Package updates are treated differently as they require processes to restart anyway. The broadcast is not needed in this case as there are no alarms expected to have been lost by a previous revocation, and apps can always use ACTION_MY_PACKAGE_REPLACED for post-update setup as usual. All this only applies to packages that have the change REQUIRE_EXACT_ALARM_PERMISSION enabled. Also changed canScheduleExactAlarms to return false if the change is not enabled for the calling package. Test: atest FrameworksMockingServicesTests:AlarmManagerServiceTest atest CtsAlarmManagerTestCases Bug: 179541791 Bug: 187206399 Change-Id: Icd68275701f2804be65b3a10a7dd81bbf6e2a0bb
2021-06-12Merge "Fix some incorrect annotations in AppSearch." into sc-devAlexander Dorokhine
2021-06-11Add framework-media to sdkAnton Hansson
This was removed in Iff38291b964de4116bcdefe4fd74136c4878c543 in favor of using the bootclasspath fragment. However the bootclasspath fragment for media does not contain the API tracking files, so it back for now to make sure we can finalize the media API files. This CL may be revertable in the future if we can get the java_sdk_library into the bootclasspath_fragment somehow. Bug: 190807367 Bug: 188427719 Test: m media-module-sdk and inspect the zip for api tracking files Change-Id: Ia01c32d4c6c6bad734df053da0024a139a808a54
2021-06-10Fix some incorrect annotations in AppSearch.Alexander Dorokhine
Bug: 180763772 Test: Builds Change-Id: I9f5dd9af8e3f3715be58004bb70bee5c5692b721
2021-06-09Close AppSearchImpl in handling user removed broadcast.Terry Wang
Flushing takes a few ms, it seems like a pretty good trade off compared to keeping an icing instance in memory forever. Bug: 179390369 Test: presubmit Change-Id: Ic0493137dc8c33d44bd074bbd9ca4ae442049513
2021-06-09Update framework from jetpack.Alexander Dorokhine
Changes included: * 9b55e76: Remove GeneralStats * b467803: Upstream fixes for UserHandle and VisibilityStore. * 47d8dca: Allow FrameworkOptimizeStrategy to be export to Framework. Bug: 173532925 Bug: 181787682 Bug: 175255572 Test: Presubmit Change-Id: I1aec9cb824f8ef64df98f252ed5a6338abc9e152
2021-06-09Merge "Use AppSearchConfig in PlatformLogger" into sc-devXiaoyu Jin
2021-06-09Propagate the temp allowlist reason to NPMS.Sudheer Shanka
Bug: 189291729 Test: atest ./tests/cts/hostside/src/com/android/cts/net/HostsideRestrictBackgroundNetworkTests.java BYPASS_INCLUSIVE_LANGUAGE_REASON=Existing public API Change-Id: I7e26eaef4fe9d7d7b4b3a1740608e0fe821537d2
2021-06-08Use AppSearchConfig in PlatformLoggerXiaoyu Jin
bug: 173532925 Test: atest CtsAppSearchTestCases FrameworksCoreTests:android.app.appsearch FrameworksServicesTests:AppSearchImplTest FrameworksServicesTests:com.android.server.appsearch.stats.PlatformLoggerTest FrameworksMockingServicesTests:com.android.server.appsearch.AppSearchConfigTest Change-Id: I3589f0071d456e2167cd207e83acaf1d884f9992
2021-06-08Log two new fields for initializeStatsXiaoyu Jin
Test: it builds bug: b/173532925 Change-Id: Ia31fc1fb54827efa140e16eb654e0ddfeeb28a07