CM13 on Nexus 9: Any app that internally opens a webpage or otherwise uses System WebView crashes


Question

CyanogenMod 13 nightlies on Nexus 9 with Gapps installed.



I've been dealing with a persistent issue where any app that uses Android System WebView will crash. This means that any app that opens a webpage internally or otherwise tries to render HTML-based content internally (e.g. Email) will crash, rendering a large number of apps unusable.



Installing and updating WebView from Google Play does not help. In fact, it seems that the system is not using the downloaded WebView at all as there is no indication that the WebView app had ever opened at all.



An example error generated when this happens is as follows:



*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'google/volantis/flounder:6.0.1/MMB29K/2419427:user/release-keys'
Revision: '0'
ABI: 'arm64'
pid: 12135, tid: 12667, name: RenderThread >>> com.android.email <<<
signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
Abort message: '[FATAL:gl_fence_egl.cc(65)] Check failed: g_ignore_egl_sync_failures.
'
x0 0000000000000000 x1 000000000000317b x2 0000000000000006 x3 0000000000000000
x4 0000000000000000 x5 0000000000000001 x6 0000000000000000 x7 0000000000000000
x8 0000000000000083 x9 0000007f7581a4bd x10 0000007f7581a470 x11 0000007f7581a772
x12 0000007f7581a4bc x13 0000000000000054 x14 0000007f7a78c4f8 x15 0000007f8f772aa8
x16 0000007f8f7646a0 x17 0000007f8f726b6c x18 0000007f8f772a98 x19 0000007f7581c510
x20 0000007f7581c450 x21 0000000000000000 x22 0000000000000006 x23 0000007f7581ad38
x24 0000007f7ad78000 x25 00000000000005db x26 0000007f7adab930 x27 0000007f7ac2b0f0
x28 0000007f7581b14c x29 0000007f7581a7b0 x30 0000007f8f724308
sp 0000007f7581a7b0 pc 0000007f8f726b74 pstate 0000000020000000

backtrace:
#00 pc 000000000006bb74 /system/lib64/libc.so (tgkill+8)
#01 pc 0000000000069304 /system/lib64/libc.so (pthread_kill+68)
#02 pc 00000000000211e0 /system/lib64/libc.so (raise+28)
#03 pc 000000000001b980 /system/lib64/libc.so (abort+60)
#04 pc 00000000006e0bc0 /data/app/com.google.android.webview-2/lib/arm64/libwebviewchromium.so


Any ideas?


Answer

The internal graphics driver was out of date. Updating the vendor image solved the problem. Updating also fixed a non-working camera.


CyanogenMod ROMs do not provide updated device-specific drivers ("vendor"), baseband firmware ("radio"; for cellular devices only), or bootloaders. These are stored on their own partitions and must be flashed manually at the fastboot bootloader. To do so, download the latest stock system image, extract it, and flash the applicable files:


fastboot flash bootloader <bootloader-image>
fastboot flash vendor <vendor-image>
fastboot flash radio <radio-image>



Update: An official CyanogenMod blog post states:



Nexus devices now ship with a large portion of their proprietary code in a vendor partition on the device itself. This is not something CM’s installation will update for you. If your vendor partition doesn’t match with the CM build, you will be met with an error on boot up that the system is potentially corrupted. To prevent this message (and ensure things like camera function), you should make sure you are on the latest available vendor image for your device. Vendor images can be found in the stock Nexus factory images provided by Google here. Extract the latest available zip and flash the vendor image through your bootloader with ‘fastboot flash vendor vendor.img’.



The error at boot-up looks like this:



Android System


There's an internal problem with your device. Contact your manufacturer for details.



Topics


2D Engines   3D Engines   9-Patch   Action Bars   Activities   ADB   Advertisements   Analytics   Animations   ANR   AOP   API   APK   APT   Architecture   Audio   Autocomplete   Background Processing   Backward Compatibility   Badges   Bar Codes   Benchmarking   Bitmaps   Bluetooth   Blur Effects   Bread Crumbs   BRMS   Browser Extensions   Build Systems   Bundles   Buttons   Caching   Camera   Canvas   Cards   Carousels   Changelog   Checkboxes   Cloud Storages   Color Analysis   Color Pickers   Colors   Comet/Push   Compass Sensors   Conferences   Content Providers   Continuous Integration   Crash Reports   Credit Cards   Credits   CSV   Curl/Flip   Data Binding   Data Generators   Data Structures   Database   Database Browsers   Date &   Debugging   Decompilers   Deep Links   Dependency Injections   Design   Design Patterns   Dex   Dialogs   Distributed Computing   Distribution Platforms   Download Managers   Drawables   Emoji   Emulators   EPUB   Equalizers &   Event Buses   Exception Handling   Face Recognition   Feedback &   File System   File/Directory   Fingerprint   Floating Action   Fonts   Forms   Fragments   FRP   FSM   Functional Programming   Gamepads   Games   Geocaching   Gestures   GIF   Glow Pad   Gradle Plugins   Graphics   Grid Views   Highlighting   HTML   HTTP Mocking   Icons   IDE   IDE Plugins   Image Croppers   Image Loaders   Image Pickers   Image Processing   Image Views   Instrumentation   Intents   Job Schedulers   JSON   Keyboard   Kotlin   Layouts   Library Demos   List View   List Views   Localization   Location   Lock Patterns   Logcat   Logging   Mails   Maps   Markdown   Mathematics   Maven Plugins   MBaaS   Media   Menus   Messaging   MIME   Mobile Web   Native Image   Navigation   NDK   Networking   NFC   NoSQL   Number Pickers   OAuth   Object Mocking   OCR Engines   OpenGL   ORM   Other Pickers   Parallax List   Parcelables   Particle Systems   Password Inputs   PDF   Permissions   Physics Engines   Platforms   Plugin Frameworks   Preferences   Progress Indicators   ProGuard   Properties   Protocol Buffer   Pull To   Purchases   Push/Pull   QR Codes   Quick Return   Radio Buttons   Range Bars   Ratings   Recycler Views   Resources   REST   Ripple Effects   RSS   Screenshots   Scripting   Scroll Views   SDK   Search Inputs   Security   Sensors   Services   Showcase Views   Signatures   Sliding Panels   Snackbars   SOAP   Social Networks   Spannable   Spinners   Splash Screens   SSH   Static Analysis   Status Bars   Styling   SVG   System   Tags   Task Managers   TDD &   Template Engines   Testing   Testing Tools   Text Formatting   Text Views   Text Watchers   Text-to   Toasts   Toolkits For   Tools   Tooltips   Trainings   TV   Twitter   Updaters   USB   User Stories   Utils   Validation   Video   View Adapters   View Pagers   Views   Watch Face   Wearable Data   Wearables   Weather   Web Tools   Web Views   WebRTC   WebSockets   Wheel Widgets   Wi-Fi   Widgets   Windows   Wizards   XML   XMPP   YAML   ZIP Codes