[LG V30 ROMs, Kernels, Recoveries, & Other Developm] flangefrog:
Ok, so I don't really know what I'm doing but I've made a lot of progress on the widevine crashing issue.

I've found newer widevine files from the LG G7 here: https://github.com/SGCMarkus/proprietary_vendor_lge/tree/lineage-19.1/joan/proprietary/vendor

I've used FX file explorer to mount the root directory read-write and copy the following files from the above repository

system/vendor/bin/hw/android.hardware.drm@1.3-service.widevine
system/vendor/etc/init/android.hardware.drm@1.3-service.widevine.rc
system/vendor/etc/vintf/manifest/manifest_android.hardware.drm@1.3-service.widevine.xml
system/vendor/lib64/libwvhidl.so

I've modified system/vendor/etc/vintf/manifest.xml and removed the following code, since I believe it's not needed with the new file in the manifest directory

<hal format="hidl">
<name>android.hardware.drm</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>ICryptoFactory</name>
<instance>widevine</instance>
</interface>
<interface>
<name>IDrmFactory</name>
<instance>widevine</instance>
</interface>
<fqname>@1.1::ICryptoFactory/widevine</fqname>
<fqname>@1.1::IDrmFactory/widevine</fqname>
</hal>

And deleted

system/vendor/bin/hw/android.hardware.drm@1.1-service.widevine
system/vendor/etc/init/android.hardware.drm@1.1-service.widevine.rc

I set full execute permissions (0755) on system/vendor/bin/hw/android.hardware.drm@1.3-service.widevine

After doing this and restarting, I can run system/vendor/bin/hw/android.hardware.drm@1.3-service.widevine as root and all the DRM info apps show widevine running (level 1), Netflix works fine and Chrome does not crash anymore.

The widevine service does not run automatically because of an SELinux error which shows up on dmesg

init: Control message: Could not ctl.interface_start for 'android.hardware.drm@1.0::IDrmFactory/widevine' from pid: 779 (/system/bin/hwservicemanager): File /vendor/bin/hw/android.hardware.drm@1.3-service.widevine (labeled "u:object_r:vendor_file:s0") has incorrect label or no domain transition from u:r:init:s0 to another SELinux domain defined. Have you configured your service correctly? https://source.android.com/security/selinux/device-policy#label_new_services_and_address_denials

I'm not sure why this is, as the system/vendor/etc/selinux/vendor_file_contexts file includes the following code with a wildcard for version 1-4 which should cover this file.

/(vendor|system/vendor)/bin/hw/android\.hardware\.drm@1\.[1-4]-service.widevine u:object_r:hal_drm_widevine_exec:s0

Using The SELinux Switch I set SELinux to permissive mode and everything works fine.

I've attached a zip of the files that need to be copied (including a modified manifest.xml). You just need to delete the mentioned files manually.

Edit: while everything looks to fine in the DRM info apps and it does stop the apps crashing, the widevine DRM does not work and DRM protected videos do not play. I assume this is because of a mismatch between the widevine 1.3 library and either the hardware or android 12.

Can anyone help with the SELinux issue? I assume it's an easy fix for someone who knows what they're doing.