Fix mediacodec on vndk-27

Since android-10.0.0_r37, mediacodec seccomp policy now has two
includes. In AOSP 8.1, minijail is vendor-side.
AOSP 8.1's minijail has a bug, which can't read multiple includes.
All of this together means mediacodec is broken.

This fixes it by overriding vendor's minijail to a working one, in the
hope that vendors didn't change anything in their own minijail

https://issuetracker.google.com/issues/158068181
This commit is contained in:
Pierre-Hugues Husson 2020-06-03 16:52:59 +02:00 committed by tboy1991
parent d8a0e7fad0
commit 02c9b63356

View File

@ -1,5 +1,8 @@
#!/system/bin/sh #!/system/bin/sh
vndk="$(getprop persist.sys.vndk)"
[ -z "$vndk" ] && vndk="$(getprop ro.vndk.version |grep -oE '^[0-9]+')"
[ "$(getprop vold.decrypt)" = "trigger_restart_min_framework" ] && exit 0 [ "$(getprop vold.decrypt)" = "trigger_restart_min_framework" ] && exit 0
setprop ctl.start media.swcodec setprop ctl.start media.swcodec
@ -31,6 +34,12 @@ fi
setprop ctl.stop storageproxyd setprop ctl.stop storageproxyd
sleep 10
if [ "$vndk" = 27 ] && getprop init.svc.mediacodec |grep -q restarting;then
mount /system/lib64/vndk-27/libminijail.so /vendor/lib64/libminijail_vendor.so
mount /system/lib/vndk-27/libminijail.so /vendor/lib/libminijail_vendor.so
fi
#Clear looping services #Clear looping services
sleep 30 sleep 30
getprop | \ getprop | \