We see cases where bootanim is IO sleeping on boot and its causing
jank. Change the ioprio to the highest in an attempt to reduce this.
Bug: 138459662
Test: manual - flash and factory reset, looking for artifacts in the boot animation
Change-Id: I9734edea37c92e365a2b359a5180303e9b9284f7
Look for bootanimation.zip in /apex/com.android.bootanimation/etc/.
This is needed to support download and install of customized bootanimations.
Bug: 116821733
Test:
1. Get a custom bootanimation.zip
2. Build a com.android.bootanimation.apex that contains the custom
bootanimation.
3. Build a product partition containing the public avb-key in
/product/etc/security/apex/ or a system partition containing the
public avb-key in /system/product/etc/security/apex/
4. Flash the partition that was built.
5. $ adb install com.android.bootanimation.apex
6. $ adb reboot
7. Verify that the custom bootanimation is used during boot.
Change-Id: I0b63e8dd2ba536a5077e34f63670025f6e9d791a
When the device is provisioned, write a system property
to indicate device provisioned.
Test: manual
Bug: 131702833
Change-Id: I7ade97770658b3aa67d642446dd66c410ec4c5a3
This reverts commit 706bf3f628.
Reason for revert: b/124939955. bootanimation depends on libandroidicu in the Runtime APEX.
Bug: 124939955
Change-Id: I2b5a9d74a5f0ae11978ff4b0850dd7e4becb9b88
This saves about 200 msec by preloading media zip file before waiting
for surface flinger becomes ready.
Android Auto results:
BootAnimation: BootAnimationPreloadTiming start time: 8261ms
BootAnimation: BootAnimationPreloadStopTiming start time: 8508ms
Bug: 62056504
Test: adb logcat -s BootAnimation
Change-Id: Iaedf774983a66c2838452c45a04b3a1f4c728f17
This reverts commit d848183572.
Reason: the static deps to libnativeloader and libnativebridge no longer
exist
Bug: 123403798
Test: Device boots to the UI
Test: bootanimation is shown from the very beginning
Change-Id: I1a3f214b1d9a19520998c7d1f2d288465a831892
This CL enables the framework to manage an arbitrary number of physical
displays. It also surfaces physical display IDs, which are stable across
reboots and encode (model, port) information that will be propagated
further up in a follow-up CL.
Bug: 116025192
Test: Boot with more than two displays
Test: Hotplug works with any number of displays
Test: Verify stable display IDs with "dumpsys display"
Change-Id: Idb2eaff66b2e0873be6ad27d337ff18b730d1331
It depends on libdexfile_external and libnative{bridge,helper,loader} which
are provided by the Runtime APEX.
Test: flash & boot
Test: atest CtsJdwpTestCases
Bug: 113373927
Change-Id: Id9a78f9adb4c928ab4c91fda0ee3ea4b13eed592
* Add explicit to conversion constructors/operators
Bug: 28341362
Test: make with WITH_TIDY=1 DEFAULT_GLOBAL_TIDY_CHECKS=-*,google-explicit-constructor
Change-Id: Ia6ada49250973d507ae8b10d8f0d7c2d47ee805c
See build/soong/README.md for more information.
Test: cd frameworks/base/cmds/bootanimation; mma
Change-Id: I7e023ffc42f61ce9a215a958fbbd158a6a8352d7
Merged-In: I7e023ffc42f61ce9a215a958fbbd158a6a8352d7
(cherry picked from commit efc3e37c9b)
To match the rest of booting log in system_server,
e.g. SystemServerTiming and SystemUIBootTiming.
Test: build
Bug: 118241273
Change-Id: Idf6aca0c503b85c645a7c3d5f430c321a8d83cca
We do this by storing the masking inset in a persistent property.
The boot animation then animates itself to where it would be if that
masking inset were applied, then changes the viewport.
For this to work, we also need to make sure the DisplayManagerService
has the right overlay right at the start.
Bug: 112876936
Test: Hide cutout, then reboot. Verify boot animation is smooth.
Change-Id: I3e988b2340b2e0d2be3939bdc6878704c234ccc8
Use proto for disk usage.
Bug: 79932027
Test: Ran through the following scenarios-
- RebootActivity parses previous boot parameters; sets next as expected.
- Push old parameters to device and ensured bootanimations reads it and
saves new format (serialized proto) that can be read in userspace
(RebootActivity).
- Unit tests pass.
Change-Id: I98aefb7a832c985d5061ee80ab85a4523f067641
So it can be shared with the iot/ variant I refactored it into the
audioplay.h file. This keeps all of the audio code local, we could hide
the functions and only expose the callback but that would make testing
harder.
Test: Ran a bootanimation.zip with audio.wav on Marlin, works as expected.
Bug: 67051984
Change-Id: Ie31dc5f2cfaad5bb23134ef81be712afa6b3cd6f
* If it's a silent boot, call boot_action_silent_boot from lib.
* Otherwise, boot normally (e.g. with callbacks).
Bug: 78525346
Test: Master (sdk_google_iot_x86) builds and validated on oc-mr1-iot-dev,
* With no boot parameters, the boot is not silent,
* With normal parameters, the boot is not silent.
* With silent parameters, the boot is silent.
* With test bootactions lib, verify lib is loaded and non-silent boot
follows expected sequence and a silent boot calls
boot_action_silent_boot.
In all cases above, sample parameters are preserved.
Change-Id: I74bc9b5262fc4a181339da50726b415c3e4d3398
Support new parameters based on new API.
Bug: 78525209
Test: Builds and unit tests pass on oc-mr1-iot-dev. Able to push json
to 'next_boot.json' and verify it is moved to 'last_boot.json.' Builds
on master with target sdk_google_iot_x86.
Change-Id: I01d34b7695176e80468b5ddc7ccff50168093017
* Update JSON blob that BootParameters reads from.
* Change JSON reader to allow custom keys.
Bug: 78524407
Test: Builds. Unit tests pass. End to end flow with RebootActivity
passes values as expected.
Change-Id: I2966f560de4aaf045125946c7fbe1becd47354be
Bug: 78577334
Test: Builds on master (aosp_x86-userdebug),
unit tests pass on oc-mr1 (on iot target).
Change-Id: I3584a285f1be914cc3e940469d7dea142d4a4231
Bug: 72667033
Test: tested loading /product/media/bootanimation.zip after moving it
from from /system/media to /product/media on sailfish
Change-Id: I10612dd77da7c2c67b02b00b7f0eb2b28e49cc98
We want to provide a sane default for the bootaction library name so
that the developer isn't required to mess with read-only properties to
get this working.
Also small cleanup to remove duplicate and unused libs from Android.mk.
Bug: 67644323
Test: builds (master)
Test: properly loads default lib (nyc-iot-dev)
Test: logs and exits when lib doesn't exist (nyc-iot-dev)
Change-Id: I865a45f43b3594c99419e7e27c9798ee944d0db2
For now we reimplement global transactions in the Java side
JNI layer.
Bug: 64815723
Bug: 64816140
Bug: 64815766
Test: Existing tests pass. go/wm-smoke
Change-Id: I6c0a7b5e65b1b6cc844ac61f3269629af60a4244
Currently the boot parameters are tied pretty tightly to the bootaction
functionality, but volume and brightness need to be set on the
bootanimation regardless of whether there's a bootaction or not.
Extract boot parameters into a separate class to make it easier to apply
volume/brightness in a future CL.
Bug: 65462981
Test: Manual test, can succesfully read params on boot.
Change-Id: I32daad64cb8aab39fcd0ca17503218e0605ccd27
(cherry picked from commit f78561e7bbe580d0f0dbca7a615c575973ef6ce4)
We now provide some parameters that can be set on reboot and passed into
the bootaction library. This becomes part of the public libandroidthings
native API, so we need to use the public type.
Bug: 65462981
Test: `mma` builds successfully
Test: Test bootaction.so can receive boot params (tested on nyc-iot-dev)
Change-Id: Ibf6548730e0bac023f6a0a3aef925b0938418a10
We delay shutting down the animation if there is a boot action present
until we are told by the system to shutdown.
This addresses an issue we are seeing where we switched to a very short
bootanimation (bootanimation_mini.zip) to save CPU but this kills the
boot action prematurely.
Bug: 37992717
Test: Ran locally against imx7d.
Change-Id: I23556b21128b80d08cc55eaa761439a570b8eebe
Bug: http://b/65462981
Test: Parameters in next_boot.json are passed to
boot action; next_boot.json is moved to
last_boot.json to allow reading by
DeviceManagementService.
Change-Id: Ie290711ea48a3a221cfad2e9266215b76631ecbd
Use /oem/oem.props to configure what the library name for the boot
action
will be, expect that library to be found in /oem/lib
Bug: 62090281
Test: Ran locally against an imx7d, reads oem.props, finds, and loads
library.
Change-Id: I13c161e140747091595efa36f76297ba92cdfa4d
This is a multiproject change as we need to both the libraries
themselves as well as those that had dependencies on libskia.so
Bug: 31971097
Test: compile only
Change-Id: Ie6ff1f4682d03289205f4d6048cde9f95c61a90f
The sf.debug.nobootanimation was apparently broken in a recent
refactoring. Flipping the boolean in the utils fixes the issue.
Left some additional logging behind.
Test: marlin-eng boots
Test: my test can prevent the boot animation
Test: shell stop start shows boot animation
Change-Id: I815708a2f16a3a8688cf1a53695e5a8d43194575
NOTE: this is only compiled into products with PRODUCT_IOT=true.
Introduce BootActions that a developer can provide to manipulate IO
before the android framework comes up on boot.
We will look for a configuration file at /oem/app/etc/boot_action.conf and
expect it to tell us the name of a shared library. We will then fetch
this library from /oem/app/lib/${arch}/ and load it. We expect it to export
boot_action_init(), boot_action_shutdown(), and optionally
boot_action_start_part(int partNumber, int playNumber).
We will then call boot_action_init() during boot after PeripheralManager
is up and call boot_action_shutdown() when the android framework is up
and we are going to start loading APKs.
We will also call boot_action_start_part(*) when each part of the boot
animation is started, use this if you want to synchronize the boot
action and the boot animation.
Boot actions run in a restricted environment and in general can only
make calls to PeripheralManager.
Bug: 37992717
Test: Pushed to local imx7d to test boot actions, pushed to bullhead test that animation+sound still works.
Change-Id: I9e53a17567f8028ea84486d637e1d231ee1125e1
We would like to reuse the animation parts of it in Android things.
This refactors the audio part into the _main and gets callbacks from
the BootAnimation class at interesting times. This will be the same
approach we take to integrate with it.
BUG: 37992717
Test: Built locally and pushed to a bullhead, works with sound.
Change-Id: I5eaca07c25eeb5edeab07d7ae7a29945e0e2cd37