Commit Graph

9464 Commits

Author SHA1 Message Date
Ryan Mitchell
5ae85666ac Merge "Fix DynamicRefTable::load security bug" into oc-mr1-dev
am: 2b6805fedc

Change-Id: I5ef0a789b16dc8aa0936d8fcca3917ce2f884d74
2018-06-06 15:50:57 -07:00
Ryan Mitchell
18a6ada4aa Fix DynamicRefTable::load security bug
DynamicRefTables parsed from apks are missing bounds checks that prevent
buffer overflows. This changes verifies the bounds of the header before
attempting to preform operations on the chunk.

Bug: 79488511
Test: run cts -m CtsAppSecurityHostTestCases \
        -t android.appsecurity.cts.CorruptApkTests

Change-Id: I02c8ad957da244fce777ac68a482e4e8fa70f846
Merged-In: I02c8ad957da244fce777ac68a482e4e8fa70f846
2018-06-05 22:05:11 +00:00
John Reck
b559512508 Merge "Attempting to fix the black flicker" into pi-dev 2018-06-01 03:05:51 +00:00
Derek Sollenberger
0fba15b2ba Bind correct FBO when drawing a WebView into a layer.
The WebView was unable to draw into either a standard clipped
layer or the "fading edges" unclipped layer. This CL and its
companion test cases ensure that both work with simple and
complex clips.

Bug: 79619253
Bug: 80443556
Bug: 80477645
Test: atest CtsUiRenderingTestCases:.LayerTests
Merged-In: I0e16b724f74415a61cc2a841ccf4a491f293ac94
Change-Id: I4900222975fc841b11828916878fb0ea6d87dcda
2018-06-01 01:08:15 +00:00
John Reck
5b02c629bd Attempting to fix the black flicker
Bug: 79231206
Test: Repro steps from bug

Merged-In: I4c2810c42a7a4358f64584da3ab0cdf1499e71b6
Change-Id: I4c2810c42a7a4358f64584da3ab0cdf1499e71b6
2018-05-31 12:56:28 -07:00
TreeHugger Robot
a2cc38e7fb Merge "Make sure frame buffer 0 is bound before calling GL functor" into pi-dev 2018-05-23 22:14:21 +00:00
Stan Iliev
357c63d1e9 Make sure frame buffer 0 is bound before calling GL functor
Make sure view port and frame buffer are set to the correct values
before calling GL functor (WebView) draw.
Improve correctness for stencil clip by doing a second flush that
guarantees the stencil clear will be executed after draw commands.

Bug: 79619253
Test: XFINITY Connect app draws correctly
Change-Id: Ieb3d0d70caf0469b6393e6287f8529cd86519301
2018-05-23 15:29:09 -04:00
Ryan Mitchell
f05f47b2c1 ResStringPool: Prevenet boot loop from se fix
Changes the logs adding in a previous security fix to warnings so
devices with malformed APKs currently on them will not undergo DOS when
they are upgraded to P.

Bug: 79724567
Test: run cts -m CtsAppSecurityHostTestCases \
          -t android.appsecurity.cts.CorruptApkTests

Change-Id: Ied54e4bb14abdaf79da562022c7ea6075187c1f8
2018-05-21 13:59:23 -07:00
TreeHugger Robot
fd37ec90b8 Merge "ResXMLTree: Clone DynamicRefTable on creation" into pi-dev 2018-05-21 17:59:35 +00:00
Jorim Jaggi
e4a8d4c7e9 Merge changes I608d4b61,Ia7900e75 into pi-dev
* changes:
  Follow up to Ia7900e753b29187a7a7b81f393666687e8b8e04b
  Apply surface parameters in sync with RenderThread
2018-05-18 11:49:56 +00:00
TreeHugger Robot
a2113aa4ad Merge "AnimatedImageDrawable: Eliminate unnecessary calls to redraw" into pi-dev 2018-05-17 19:54:50 +00:00
Jorim Jaggi
64be98d5d2 Apply surface parameters in sync with RenderThread
Otherwise it could lead to parameters applied in the wrong frame,
leading to jank.

Test: Open notification
Bug: 78611607
Change-Id: Ia7900e753b29187a7a7b81f393666687e8b8e04b
Merged-In: Ia7900e753b29187a7a7b81f393666687e8b8e04b
2018-05-17 01:57:31 +00:00
Leon Scroggins III
4afdd1caa4 AnimatedImageDrawable: Eliminate unnecessary calls to redraw
Bug: 78866720
Test: Manual + systrace; existing CTS

Previously, we set hasAnimations to true when the AnimatedImageDrawable,
so that we would get a call to redraw. But if the image does not need to
show its next frame yet, the redraw was unnecessary.

Instead, add a new field to TreeInfo::Out, representing the delay time
until the image will need to be redrawn - i.e. when the duration of the
current frame has passed. Each call to prepareTree will post at most one
message to redraw, in time for the earliest animated image to be
redrawn. Post the message for one rendered frame ahead of time, so that
when it is time to show the next frame, the image has already gotten the
message to update.

On a screen with a single animated image, this drops the number of calls
to dispatchFrameCallbacks to as infrequent as possible. It is called
only when we need to draw a new frame of the image. On a screen with
multiple animated images, the calls may be redundant, but they will not
be more frequent than they would be without this change.

Switch to nsecs_t and systemTime internally, matching the rest of HWUI.

Remove mDidDraw and related. Its purpose was to prevent advancing the
animation while the image is not being drawn. But it isn't really
necessary. If it's not drawn, onDraw is not called, which is where we
trigger decoding. And onDraw already has a defense against getting too
far ahead - if its timer indicates that it should skip a frame or show
it very briefly, it will back up its timer. More importantly, mDidDraw
caused a bug, when combined with less frequent redraws. If the display
list containing the drawable doesn't need to be redrawn for other
reasons, the drawable's timer never advanced, so its animation stopped.

Fix software drawing. Compute the milliseconds in the future to draw the
next frame, and add that to SystemClock.uptimeMillis() to compute the
time to pass to scheduleSelf.

Change-Id: I13aab49922fa300f73b327be25561d7120c09ec4
2018-05-16 18:51:07 -04:00
Ryan Mitchell
a41e66af58 ResXMLTree: Clone DynamicRefTable on creation
XmlBlocks are cached in ResourcesImpl::loadXmlResourceParser(...) and
when asset manager invalidates itself, the references to the dynamic
reference tables point to garbage. Now, the reference table is cloned
when the XmlBlock is created so invalidation will not affect the
XmlTree.

Bug: 74240254
Test: Tested GoogleMaps on 9.75.7 and saw crashes stop
Change-Id: I932db7a85fddc640c4d6ec327f534b5a1ad6d0b1
2018-05-15 15:08:58 -07:00
Leon Scroggins
b638985cc1 Merge "Use filtering when drawing nine-patches" into pi-dev 2018-05-09 16:38:41 +00:00
Leon Scroggins III
5a663768c4 Use filtering when drawing nine-patches
Bug: 77917978
Test: Look at toggles; CtsUiRenderingTestCases

Prior to this change, the toggles look pixelated due to using a
"nearest" filter instead of a "bilerp".

This matches the behavior of the hwui renderer.

Depends on changes in Skia (Ib7d0abdd51981bddf36ec5c3fd84bb651f405f0f)
to respect the filter quality when drawing to a GPU canvas and to
remove the resulting "bleeding" effect from drawImageLattice.

Change-Id: I59d81a17f351e18574539479a38a580a02e1619b
2018-05-08 17:23:11 +00:00
Ryan Mitchell
fb07d82086 Merge "AAPT: Fixed split resource dumping" into pi-dev 2018-05-08 17:17:17 +00:00
android-build-team Robot
291b944d89 Merge "Adding batterystats history to proto dump." into pi-dev 2018-05-08 14:58:09 +00:00
Kweku Adams
71a9531806 Adding batterystats history to proto dump.
It will only print out a dump for userdebug or eng builds.

Bug: 77727638
Test: flash device and check output of incident proto and
'dumpsys batterystats -c --history'

Merged-In: Ib74d4c664f23a61e6fc33f700ba6a3c6fad32c74
Change-Id: Ia0c993d1281cc350d93f9c13f5540b349a4bfb84
2018-05-07 17:53:57 -07:00
Ryan Mitchell
30487e0a79 AAPT: Fixed split resource dumping
AAPT would not print resource values for splits passed in with the -I
flag. This fix prints out each split separately with the correct type
specs and values.

Bug: 79195967
Test: aapt dump --values -I base-hdpi.apk resources base-master.apk
Change-Id: I223186136e98180fec4a3d96f92f53407db59e2d
2018-05-07 15:36:44 -07:00
John Reck
bf39913bbc Merge "Ensure GL & Gralloc both support FP16 before using it" into pi-dev 2018-05-07 20:26:02 +00:00
John Reck
b29c772429 Ensure GL & Gralloc both support FP16 before using it
Change-Id: I3bda750b6011d9a69969fc938a230c2445ee8dae
Merged-In: Id8a53885178d698c7b2fd6fc5ea8d4e36ce2ef15
Fixes: 77973662
Test: builds & CTS passes
2018-05-07 16:49:45 +00:00
Derek Sollenberger
2324991a77 Support readback of TextureView into 565 and extended sRGB.
Bug: 78906699
Test: CtsViewTestCases
Change-Id: I89e8544a883dcb3eb222c164ab57d20e55a073c3
2018-05-04 18:46:52 +00:00
Yi Jin
e09cde0cd9 Merge "Add a section flag to bypass failure if a specific path can't be found." into pi-dev 2018-05-02 21:36:23 +00:00
android-build-team Robot
f28901f6c5 Merge "Invoke create_recording_canvas correctly in macro bench tests" into pi-dev 2018-05-02 19:38:43 +00:00
Yi Jin
7fe3dee3ae Add a section flag to bypass failure if a specific path can't be found.
This is a temporary solution to bypass failure of reading cpu info or 
battery type in P if the path doesn't exist on some devices. See bug for
details. However in Q, incidentd should implement reading from the
common Linux kernel interfaces.

Bug: 78028767
Bug: 78239764
Test: atest incidentd_test
Change-Id: I08ffcb21709efe5478d2ac46121deb5795af1024
Merged-In: I08ffcb21709efe5478d2ac46121deb5795af1024
2018-05-02 01:31:08 +00:00
Derek Sollenberger
9298ad1b78 Merge "Respect a Layer's (e.g. SurfaceTexture) colorSpace when compositing" into pi-dev 2018-05-01 16:57:28 +00:00
Derek Sollenberger
551d08e2d5 Respect a Layer's (e.g. SurfaceTexture) colorSpace when compositing
This CL extracts the android_dataspace from the GLConsumer and converts
it to a SkColorSpace.  HWUI always expects to composite into an sRGB
destination so when we draw the layer we run the draw through a
colorFilter that converts the input colorSpace into that of the
destination.

Test: CtsViewTestCases
Bug: 78016220
Merged-In: Ic0446a0d861e86a5a9d0382346b57fcc45c8a61b
Change-Id: Ic0446a0d861e86a5a9d0382346b57fcc45c8a61b
2018-05-01 02:45:43 +00:00
Stan Iliev
4f901c8cec Invoke create_recording_canvas correctly in macro bench tests
create_recording_canvas expects as a last parameter a render node,
which is used to reuse deallocated display lists. Passing the
render node improved performance in several tests and it is
matching how HWUI is using that API too.

bug: 69131471
Test: tvappGlTex DrawFrame is 1ms faster
Change-Id: I93d8da694c178d3fb8d1aa52afa76dd8271e93cb
2018-04-30 20:22:19 +00:00
Todd Kennedy
13588dc9e4 Merge "Allow using reserved package IDs" into pi-dev 2018-04-26 21:29:17 +00:00
Todd Kennedy
325129964e Allow using reserved package IDs
Pre-O, the platform treats negative resource IDs [those with
a package ID of 0x80 or higher] as invalid.  In order to work
around this limitation, we allow the use of traditionally
reserved resource IDs [those between 0x02 and 0x7E].

Bug: 78041707
Test: ./out/host/linux-x86/nativetest64/aapt2_tests/aapt2_tests
Test: ./out/host/linux-x86/nativetest/libandroidfw_tests/libandroidfw_tests
Test: Manual. Create a feature split with a package ID of 0x7E and see it runs and can reference base resources.

Change-Id: I3d9782cc05d3a55e1a2467bf39566788847e1160
2018-04-26 10:27:30 -07:00
Leon Scroggins
5bb709c31e Merge "Attach color space after performing a readback" into pi-dev 2018-04-24 20:01:22 +00:00
Leon Scroggins III
3eadfde67f Attach color space after performing a readback
Bug: 78463311
Test: I28713c3e5ce38dea15c75542801f9aef0e5b5b0a

Bitmap::getSkBitmap() is used by Bitmap#compress before encoding. If the
Bitmap has Config HARDWARE, we have to do a readback first. We cannot
necessarily do the readback using the SkColorSpace of the Bitmap, since
that requires creating an SkSurface, which does not support all
SkColorSpaces. Instead, continue using nullptr for the readback, and
then change the info and reattach the SkPixelRef.

This fixes a bug where encoding a non-SRGB HARDWARE Bitmap and then
decoding it results in a Bitmap with the wrong ColorSpace.

Change-Id: If55b2dbfeb17d81ceaf9594b32ed69b6a9058f06
2018-04-23 16:09:14 -04:00
Yao Chen
49954cd681 Add socket listener to statsd. And remove Davey atom.
+ The socket listener is behind a flag. It's disabled until we get sepolicy changes in.
+ Data parsing code is from logd, because we use the same format.

+ Removed Davey from JankTracker because it violates our new sepolicy

Test: manually
Bug: 78239479

Change-Id: Ib17729fbc362cdb13385f780e2d636a95adf9bc3
2018-04-20 17:41:25 -07:00
y
9efbbef2e0 AAPT2: Support id reference chaining from AAPT
AAPT would allow for ids to be declared in the form:

<item name="name" type="id>@id/other</item>

@id/name should hold a reference to @id/other. When
getResources().getValue() is called on R.id.name with resolveRefs
enabled, the resuling reference should be R.id.other.

Bug: 69445910
Test: Created tests for correct parsing of id references and correct
resolving of deep references

Change-Id: Id1feb37b2565c213dc6a19b4c401906260d7fc14
2018-04-18 11:46:53 -07:00
TreeHugger Robot
1c70ecb455 Merge "Unpin bitmaps but don't purge all scratch resources." into pi-dev 2018-04-16 17:05:45 +00:00
y
5604680766 [automerger] ResStringPool: Fix security vulnerability am: 7e54c3f261 am: 98e2d2ec50 am: 24a89da344 am: d85632ae40 am: 927b3357fa am: 79d0fb2530 am: a509e771ba am: 80e36faa72 am: 76d71fa910 am: 86cfcaa610
am: 4f5e234020

Change-Id: Iedf59329ed35149cec2143e8f179c7912534a41d
2018-04-13 14:08:07 -07:00
y
4f5e234020 [automerger] ResStringPool: Fix security vulnerability am: 7e54c3f261 am: 98e2d2ec50 am: 24a89da344 am: d85632ae40 am: 927b3357fa am: 79d0fb2530 am: a509e771ba am: 80e36faa72 am: 76d71fa910
am: 86cfcaa610

Change-Id: I6d37d24fd14271d24595c380ea553cb37948fa9e
2018-04-13 13:57:36 -07:00
Android Build Merger (Role)
86cfcaa610 [automerger] ResStringPool: Fix security vulnerability am: 7e54c3f261 am: 98e2d2ec50 am: 24a89da344 am: d85632ae40 am: 927b3357fa am: 79d0fb2530 am: a509e771ba am: 80e36faa72 am: 76d71fa910
Change-Id: I971b589190cae708a08dd568290807dff0f75349
2018-04-13 20:35:02 +00:00
Android Build Merger (Role)
76d71fa910 [automerger] ResStringPool: Fix security vulnerability am: 7e54c3f261 am: 98e2d2ec50 am: 24a89da344 am: d85632ae40 am: 927b3357fa am: 79d0fb2530 am: a509e771ba am: 80e36faa72
Change-Id: Ibeb5d99f477048e8715a0d4b093052f3d88445e2
2018-04-13 20:34:58 +00:00
Android Build Merger (Role)
80e36faa72 [automerger] ResStringPool: Fix security vulnerability am: 7e54c3f261 am: 98e2d2ec50 am: 24a89da344 am: d85632ae40 am: 927b3357fa am: 79d0fb2530 am: a509e771ba
Change-Id: I48bf9619571a30e6f5ea5bad503a3805e0821a75
2018-04-13 20:34:53 +00:00
Android Build Merger (Role)
a509e771ba [automerger] ResStringPool: Fix security vulnerability am: 7e54c3f261 am: 98e2d2ec50 am: 24a89da344 am: d85632ae40 am: 927b3357fa am: 79d0fb2530
Change-Id: I068f51adbb0248db232c50bd89fb25ef0d7273a9
2018-04-13 20:34:49 +00:00
Android Build Merger (Role)
79d0fb2530 [automerger] ResStringPool: Fix security vulnerability am: 7e54c3f261 am: 98e2d2ec50 am: 24a89da344 am: d85632ae40 am: 927b3357fa
Change-Id: I61c158947f3508aab9ef65988267562663c97a21
2018-04-13 20:34:44 +00:00
Android Build Merger (Role)
927b3357fa [automerger] ResStringPool: Fix security vulnerability am: 7e54c3f261 am: 98e2d2ec50 am: 24a89da344 am: d85632ae40
Change-Id: I24a1df41eb29a6ac7e6c67368f07c6702dacf071
2018-04-13 20:34:34 +00:00
Android Build Merger (Role)
24a89da344 [automerger] ResStringPool: Fix security vulnerability am: 7e54c3f261 am: 98e2d2ec50
Change-Id: I0a5c57b7a50d9221b3be4d193388ac610ba92f73
2018-04-13 20:34:24 +00:00
Android Build Merger (Role)
98e2d2ec50 [automerger] ResStringPool: Fix security vulnerability am: 7e54c3f261
Change-Id: I57e2ea2122d22341c43b9b445291cc4b02ec2b11
2018-04-13 20:34:20 +00:00
y
7e54c3f261 ResStringPool: Fix security vulnerability
Adds detection of attacker-modified size and data fields passed to
ResStringPool::setTo(). These attacks are modified apks that AAPT would
not normally generate. In the rare case this occurs, the installation
cannot be allowed to continue.

Bug: 71361168
Bug: 71360999
Test: run cts -m CtsAppSecurityHostTestCases \
          -t android.appsecurity.cts.CorruptApkTests

Change-Id: If7eb93a9e723b16c8a0556fc4e20006aa0391d57
Merged-In: If7eb93a9e723b16c8a0556fc4e20006aa0391d57
2018-04-13 20:34:18 +00:00
Ryan Mitchell
3ddd801449 Merge "AAPT2: GetBag infinite recursion fix" into pi-dev 2018-04-13 17:44:11 +00:00
y
57cd195c43 AAPT2: GetBag infinite recursion fix
Style resources with circular parental dependencies caused infinite
recursion when calling AssetManager2::GetBag. This fix allows recursion
to cease when a circular dependency is found.

Bug: 77928512
Change-Id: Ib900c36ab1aef5da5b03234a9484c4dad3b63c02
Test: Manual test of b/77928512 and duplicates of 74493983
2018-04-13 08:50:09 -07:00
TreeHugger Robot
d0fdef9229 Merge "Revert "Revert "Update material_deep_teal_500 to #008577.""" into pi-dev 2018-04-12 23:23:00 +00:00