Bug: 197740038
Test: Force stock android animation on a pixel phone in
BootAnimation.cpp. (Remember to disable dynamic coloring.) Check stock android animation.
Change-Id: I3c3979c344a351ec261bb12127cff971d6050367
Test: Flash the updated animation to device. Reboot and check if the
animation shows up.
Bug:199179989
Fixes:199179989
Change-Id: Ic2a2496efcaca4b6ae90c167498b8cd794b46bea
This CL allows dynamic color boot animations to render graphics in shades of white.
Bug: 190093578
Test: adb shell stop; adb shell start. Complete reboot to see the full
sequence (including the loader part)
Change-Id: I672a49aff90fa04daa4bdd6fd3c0b5497cc1a115
Otherwise the sysprops would not be loaded yet and accessing them would
return empty strings.
Though unlikely, this is not 100% safe because boot color sysprops
are not guaranteed to be loaded by the time zips are loaded. A TODO
here is to understand boot steps and their timing implications so
that we can fully avoid the race condition.
Bug: 190093578
Test: adb shell setprop persist.bootanim.color(1-4), then reboot phone.
Change-Id: I603da080b1732a436a10dbaca6f2be9f158124dc
This reverts commit ad9cf52df9.
Reason for revert: Fixing broken atv test
Test: atv atp test tv/platform/simple_boot_test
Bug: 190093578
Change-Id: I9d6ecb6024ce49eef8007458b0d9bf0ff24906c7
This reverts commit 2ded80094e.
Reason for revert: Working on fixing the regression that happened on Wembly, so we can resume feature work.
Change-Id: I9a624beffdaf97f131046fd4441a251ed3a448ad
Test: adb shell /system/bin/bootanimation
Bug: 190093578
(cherry picked from commit 8eedc0293d)
Seeing 100 while booting is not finished, or seeing eg 90 while booting
is not finished isn't user-friendly.
Test: update ART module, see percent progress
Change-Id: I5509c83f661f937f00a7d28c789df509e3528a37
The shutdown callback is currently used only by audioplay.cpp to destroy the audio player.
Sending shutdown when the animation is destructed makes sure the audio
player is not being destroyed before its boot animation part is being displayed.
Test: Modified bootanimation, sound in second last part of bootanimation
plays
Bug: 157407957
Bug: 127254055
Merged-In: I47f57643791e73e4a4fa1597309dccb1f52f2316
Change-Id: I47f57643791e73e4a4fa1597309dccb1f52f2316
The shutdown callback is currently used only by audioplay.cpp to destroy the audio player.
Sending shutdown when the animation is destructed makes sure the audio
player is not being destroyed before its boot animation part is being displayed.
Test: Modified bootanimation, sound in second last part of bootanimation
plays
Bug: 157407957
Change-Id: I47f57643791e73e4a4fa1597309dccb1f52f2316
This support helps with several things:
- simpler animation structure (size, number of items)
- more room for designers avoiding thinking about exit part
- time saving as complete parts now can be safely used as fading parts
Bug: 167352662
Test: Manual testing of major/edge cases
- backward compatibility => "f 0" is mapped to "p", "p" still works
- only trimmed areas are faded out
- clock is not faded out (wear case)
- adb shell su root bootanimation
- [c, (exit) f 120, c] => "f 120" fades out and "c" completes
- [c, (exit) f 120, f 320] => "f 120" fades out and "f 320" skipped
- [c, f 16, (exit) f 120] => "f 16" played, "f 120" fades out
- [c, (exit) f 0, f 120] => "f 0" skipped, "f 120" fades out
Change-Id: I9b200ee7107ef9b3dc8d711658ed1042b83739c2
Merged-In: I9b200ee7107ef9b3dc8d711658ed1042b83739c2
This support helps with several things:
- simpler animation structure (size, number of items)
- more room for designers avoiding thinking about exit part
- time saving as complete parts now can be safely used as fading parts
Bug: 167352662
Test: Manual testing of major/edge cases
- backward compatibility => "f 0" is mapped to "p", "p" still works
- only trimmed areas are faded out
- clock is not faded out (wear case)
- adb shell su root bootanimation
- [c, (exit) f 120, c] => "f 120" fades out and "c" completes
- [c, (exit) f 120, f 320] => "f 120" fades out and "f 320" skipped
- [c, f 16, (exit) f 120] => "f 16" played, "f 120" fades out
- [c, (exit) f 0, f 120] => "f 0" skipped, "f 120" fades out
Change-Id: I9b200ee7107ef9b3dc8d711658ed1042b83739c2
When ro.surface_flinger.max_graphics_{width|height} is
set the framebuffer size is limited by this property.
However the boot animation size matches the display active
mode size which can cause it to be off-center or partially
visible.
This change limits the boot animation surface size with
accordance with ro.surface_flinger.max_graphics_width.
Bug: 153991408
Test: manual
Change-Id: Idfd1c9adc1f6b10f44bc04ec2078dbc823f28ed6
Use DisplayEventReceiver to listen for display hotplug
events and resize the boot animation is display size
changes.
Bug: 156448328
Test: manually make sure the boot animation has correct
dimensions in the following cases
I. With boot animation file
1. scrcpy
2. start boot animation with
adb shell /system/bin/bootanimation
when no physical display is connected (= 480p
fake HWC display). Use the virtual display from
scrcpy to check the boot animation size.
3. connect a 1080p display
(HWC sends hotplug connect to change the display)
4. disconnect the real display
II. Same steps without boot animation file
(android logo should be displayed)
Merged-In: Ib3f0383686399669e8de10456092baaec607fa01
Change-Id: Ib3f0383686399669e8de10456092baaec607fa01
Use DisplayEventReceiver to listen for display hotplug
events and resize the boot animation is display size
changes.
Bug: 156448328
Test: manually make sure the boot animation has correct
dimensions in the following cases
I. With boot animation file
1. scrcpy
2. start boot animation with
adb shell /system/bin/bootanimation
when no physical display is connected (= 480p
fake HWC display). Use the virtual display from
scrcpy to check the boot animation size.
3. connect a 1080p display
(HWC sends hotplug connect to change the display)
4. disconnect the real display
II. Same steps without boot animation file
(android logo should be displayed)
Change-Id: Ib3f0383686399669e8de10456092baaec607fa01
HWUI is restricting access to only a set of stable C APIs. Callers like
boot animation are being converted to either the stable C or NDK APIs.
Test: build and verify animation on reboot
Bug: 150782769
Change-Id: I1fb7c9e0ed2f7bcecec109ddc32b1c5a473f7f3a
In case userspace reboot boot animation can't be found, a default
Android logo is going to be shown.
Test: adb reboot userspace
Bug: 148172262
Change-Id: Ida12ffcfe73b335b63178f3e3f2b0c4063dae2c2
to be persist.service.bootanim.displays to control which displays can show
bootanimations. This way a user can change the proeprty to be persistent
across reboot.
Bug: 132892728
Test: manual
Change-Id: I2b98a689aafcb2f2c32f0a675624feb72ca18470
This shows boot animations to the primary and other displays, verified
with 3-display setup.
A guest property, boot.animation.displays, controls which additional displays
to show the boot animation, in addition to the primary display. Use comma
as separator to specificy multiple values, for example:
setprop boot.animation.displays 19260422155234049,19261083906282754
An example CL on how to set this system property: ag/9269083
Bug: 132892728
Test: adb logcat -s BootAnimation
Change-Id: I1ce3ebd57817246a7a0de42af9465e2a3517826b
length of input from scanf is not limited even though MAX char of path
is defined as 256. This could cause stack corruption when length of input
is over MAX.
Test: run bootanimation with desc.txt which has over 256 length of path.
Change-Id: Ic60081ca82067ad671508e766c495546af9233d1
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 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 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
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
Bug: 72667033
Test: tested loading /product/media/bootanimation.zip after moving it
from from /system/media to /product/media on sailfish
Change-Id: I10612dd77da7c2c67b02b00b7f0eb2b28e49cc98
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