Initially it was defined as secure Settings, but the proper way is to let the
OEMs set it by overlaying a framework resources, which an option to temporarily
override that setting using a Shell cmd (so it can be changed on CTS tests).
This CL also changes how the service can be explicitly enabled / disabled at
the time the system starts, so it can be disabled by a server-push in case of
emergencies (and also manually enable by developers when running the CTS tests
on AOSP builds).
Bug: 119776618
Bug: 111276913
Bug: 117779333
Test: adb shell settings put global \
smart_suggestions_service_explicitly_enabled true && \
sleep 10s && \ adb shell stop && adb shell start \
atest CtsContentCaptureServiceTestCases
Test: atest FrameworksCoreTests:SettingsBackupTest
Test: atest CtsAutoFillServiceTestCases # to make sure it didn't break
Test: m -j SettingsProvider
Change-Id: Ibd1bba0c0d534b4b6344516d8ff893142785a57a
Add a service for reporting runtime debug info via dumpsys.
With expected OEM customization / module versions in play
it makes sense to have runtime and associated "core library"
information in bug reports. The dumpsys information can also
be used from from host-side tests.
Bug: 119026403
Bug: 118242715
Test: adb shell dumpsys runtimeinfo
Change-Id: I62637a1c8bfd65d5de9b3e47b8700ead4bc314f2
Restore original naming since UserBackupManagerService is now merged.
Just find and replace, no functionality changes in this CL.
Bug: 118520567
Test: 1) atest RunFrameworksServicesRoboTests
2) atest $(find \
frameworks/base/services/tests/servicestests/src/com/android/server/backup \
-name '*Test.java')
3) adb shell bmgr flows
Change-Id: Ia37997cec93fac9ebb5102edfff9000c9cff4eb1
BMS is split into GlobalBMS and UserBMS.
UserBMS:
- Core backup/restore implementations and bookkeeping.
- Will be per user in a future CL (only one instance in this CL to limit
scope of changes).
GlobalBMS:
- System service definition, interaction with Trampoline, user-aware
operations.
- Will be renamed back to BMS in a future CL (so BMS history can follow
UserBMS in this CL).
*** Reviewers, please pay attention to the patchset breakdown to better
understand what is a rename/move vs. new changes ***
* Base -> Patchset 2: BMS splits into GlobalBMS and UserBMS (MOVE ONLY)
Patchset 1: Rename BMS -> UserBMS
Patchset 2: Move parts of UserBMS to GlobalBMS
No new functionality, only moving existing code.
* Patchset 2 -> Patchset 3: New functionality for GlobalBMS
- Switch references from BMS to GlobalBMS in Trampoline.java.
- Change the definition of the system service in SystemServer.java to
GlobalBMS.
- Instantiate one instance of UserBMS in GlobalBMS constructor.
- Add all IBackupManager methods, which for now just directly calls the
corresponding method in UserBMS.
* Patchset 3 -> Patchset 4: Migrate usages of BMS in code (RENAME ONLY)
Find and replace, no new functionality.
* Patchset 4 -> Patchset 5: Migrate usages of BMS in tests (RENAME ONLY)
Find and replace, no new functionality.
* Patchset 5 -> Patchset 6: New tests for GlobalBMS
Add tests for all the new IBackupManager methods added (just tests
straight redirection for now).
* Overall: View Patchset 2 -> [Latest Patchset] for new code.
TODO: Modify art-profile with rename
Bug: 118520567
Test: 1) atest RunFrameworksServicesRoboTests
2) atest $(find
frameworks/base/services/tests/servicestests/src/com/android/server/backup
-name '*Test.java')
3) atest GtsBackupHostTestCases
4) atest CtsBackupTestCases
5) atest CtsBackupHostTestCases
6) atest DeviceOwnerTest
7) 'Backup Now' in Settings
8) Cloud and d2d restore in SUW; deferred restore
9) All 'adb shell bmgr' flows
10) adb backup; adb restore
Change-Id: Ib5a5837375fe950bc7d33a5e31cca16b605541f9
It's not properly ignoring events when the service is not set, which is causing
issues on some apps.
Fixes: 119659731
Test: manual verification
Change-Id: Ie271b8fcfde0bc2a5d6bf7c73b88bd6c48d50fdb
The display manager relies on resources that may or may not have been
modified via runtime resource overlay. Because the overlay manager is
initialized in parallel with the display manager, the two need to
synchronize their work so the display manager knows when it can rely on
its resources.
An upcoming change will hold off on threading the system until after the
initialization of the overlay manager. This means all overlays should be
setup before other services start, which in turn means no additional
synchronization is required. As a first step towards this, remove the
synchronization between the display manager and the overlay manager.
Also remove unused variable LogicalDisplay#PROP_MASKING_INSET_TOP.
Bug: 80150169
Test: builds, boots
Change-Id: I844de9e09eb1464ae112e1b480d21cf662a026e0
An advanced multi-display support is requested for certain Android
form-factors so that user(s) can type text on each display at the same
time without losing software keyboard focus in other displays. This is
not possible in existing Android IMEs that are built on top of
InputMethodService class, because the assumption that a single IME
client can be focused at the same time was made before Android IME
APIs were introduced in Android 1.5 and many public APIs in
InputMethodService have already relied heavily on that
assumption. Updating InputMethodService class to support multi-client
scenario is, however, quite challenging because:
1. doing so would introduce an unacceptable amount of complexity into
InputMethodService, which is already hard to maintain,
2. IME developers still need to update their implementation to be
able to support parallel requests from multiple focused IME
client, which may require non-trivial redesign in their side
(e.g. input decoder, typing history database, ...), and
3. actual use cases for multi IME clients are expected to be evolved
rapidly hence the new protocol is not yet stable and not yet ready
to be exposed as public APIs.
This is why a new type of IME needs to be designed and developed
specifically for such special multi-display environments, rather than
reusing existing InputMethodService public class.
Note that there must be no behavior change unless multi-client IME is
explicitly enabled with 'adb shell setprop', which requires root
permission.
See multi-client-ime.md for details.
Fix: 114662040
Test: Manually verified as follows:
1. make -j MultiClientInputMethod
2. adb install -r $OUT/system/priv-app/MultiClientInputMethod/MultiClientInputMethod.apk
3. adb root
4. adb shell setprop persist.debug.multi_client_ime \
com.example.android.multiclientinputmethod/.MultiClientInputMethod
5. adb reboot
6. Try multiple text input scenario
Change-Id: I41dfe854557b178d8af740bc2869c936fc88608b
Properties accessed across partitions are now schematized and will
become APIs to make explicit interfaces among partitions.
Bug: 117924132
Test: m -j
Change-Id: I8e04f643197b6c8a60cc38c6979e41c5de3469f5
(cherry picked from commit 0cf5fc1433ef113d33d40b62cfca9ce97de12a4b)
Load device specific audio service for needed devices.
Bug: 119241152
Test: Apply full topic to test Arc audio functionality
Change-Id: Ibc1a7844faf5a6e54acc3342cf603023ada74b92
This system service will listen to ThermalHAL for throttling events and
take actions accordingly, e.g. shutdown device and/or sending
notification to registered listeners to IThermalSerivce.
Bug: 79443945
Bug: 118510237
Bug: 111086696
Bug: 116541003
Test: Boot and test callback on ThermalHAL 1.1
Test: Boot and test callback on ThermalHAL 2.0
Test: Kill ThermalHAL process
Test: Change device threshold to trigger shutdown
Change-Id: I1f4066c9f1cf9ab46c1738a0a4435802512e4339
Final step before we actually start unifing the hierarchy is to have
activity and window manager under one lock. This CL makes it so.
Note, that there are probably areas where this change might lead to dealock
however we can fix those areas as we discover them.
Test: Existing tests pass
Bug: 80414790
Change-Id: Ie4b71d4ceb986256482031a99065b8d2ef60ebe8
Devices that have no biometric hardware should still get the
BIOMETRIC_ERROR_HW_NOT_PRESENT error. Currently they get the
BIOMETRIC_ERROR_HW_UNAVAILABLE error which is slightly wrong.
Fixes: 119109074
Test: Builds
Change-Id: I32134a35fd2844bc6a4a64ded9695ae596496ef2
It's still full of TODOs, but at leats it now provides an end-to-end
workflow from the activity creation / destruction to the service implementation.
Test: mmm -j packages/experimental/FillService && \
adb install -r ${OUT}/data/app/FillService/FillService.apk && \
adb shell settings put secure intel_service foo.bar.fill/.AiaiService
Bug: 111276913
Change-Id: Id5daf7b8b51e97c74d9b6ec00f953ddb02b48e46
What could go wrong ;)
Note that ATMS and all other activity management files are still under
the AMS lock. We will be changing them soon to use the WMS lock, but
till then it is important to take care not to use the WMS lock for
activities stuff and AMS lock for window stuff.
Test: Existing tests pass
Bug: 80414790
Change-Id: I69f5a6e40ad892557a425e1f34be987507102136
Create skeleton service to migrate functions from UsbService in later
change.
Bug: 63820489
Test: make
Change-Id: I07672fe87cfae188fe77c173fc49119e182c6b05
Log a wtf in the system server when the runtime does not
use a boot image.
Test: m
Test: system boots
Change-Id: I087c269dd1e95eeeab5db4250133f9c61e9399c7
When VR mode is not supported by removing the feature of
android.hardware.vr.high_performance, do not start VrManagerService.
Otherwise, there will be undesired behavior, such as calling into
PowerHal/VrHal for VR hints.
Test: no undesired behavior observed
Bug: 116427118
Change-Id: I3e3c1f02c2fad958d8659d7957d005d25d823c3e
Merged-In: I3e3c1f02c2fad958d8659d7957d005d25d823c3e
This is in preparation for BiometricManager. Each Manager should have its
own Service.
Bug: 112570477
Test: BiometricPromptDemo works
Change-Id: Ibbbd499a0fd5a2050b329ee038776c6c9f49cdb2
This was removed as part of this bug because the config wasn't used:
Bug 64052650
Change-Id I5c8ed3f0e78c2ed0d2e733939a82e1ab8940de22
This is now needed by Android Automotive since the network module may
live off board in a vehicle.
Bug: 110800197
Test: make & flash
Change-Id: I3715602e7fb22503d6867b61c22bdcb963174059
This CL moves TextServicesManagerService (TSMS)
from com.android.server
to com.android.server.textservices
so that we can mechanically factor out inner classes from IMMS to
separate package private classes.
This is purely a mechanical refactoring of an implementation detail.
There should be no observable behavior difference.
Fix: 115516399
Test: manually verified with AOSP spellchecker
Change-Id: Iaaf627e48e3f040795f58e03b1292a991afb82b4
This CL moves InputMethodManagerService (IMMS)
from com.android.server
to com.android.server.inputmethod
so that we can mechanically factor out inner classes from IMMS to
separate package private classes.
This is purely a mechanical refactoring of an implementation detail.
There should be no observable behavior difference.
Fix: 114660660
Test: atest CtsInputMethodTestCases CtsInputMethodServiceHostTestCases
Test: atest FrameworksCoreTests:com.android.internal.inputmethod
Change-Id: I023d8f2863601ee54f304988117d8ea750770f70
When VR mode is not supported by removing the feature of
android.hardware.vr.high_performance, do not start VrManagerService.
Otherwise, there will be undesired behavior, such as calling into
PowerHal/VrHal for VR hints.
Test: no undesired behavior observed
Bug: 112064298
Change-Id: I3e3c1f02c2fad958d8659d7957d005d25d823c3e
Injecting and mocking dependencies to make the service unit testable.
Shuffled around initialization to make that possible.
Also added the first batch of unit tests. The idea is to have extensive
coverage of minute pieces of alarm manager logic, which should help us
catch any regressions caused by future changes to the code.
Test: atest com.android.server.AlarmManagerServiceTest
atest CtsAlarmManagerTestCases
Bug: 111454659
Change-Id: Ifa1c09646f688cf5c41abe17d98dbc19978eac70